Merged
Conversation
Enable bulk_actions_default_to_errors? globally for consistent bulk operation behavior. Add disable_async? in test env to simplify test assertions by running hooks synchronously.
Create test resource with change modules exercising various after_action and after_transaction hook scenarios: - Simple success hooks that send messages for verification - Conditional failures based on record content - Hooks that return errors to trigger rollbacks - Atomic-compatible changes for all bulk strategies Includes actions for create, update, and destroy operations.
Generate migrations for the AfterTransactionPost test resource. Creates table with id, title, and status attributes.
Test after_transaction hook behavior in bulk_create operations with transaction: :batch and transaction: :all modes. Verifies hooks handle empty results, capture errors correctly, and that transaction semantics work as expected.
Test after_transaction hook behavior in bulk_update operations across :stream, :atomic, and :atomic_batches strategies. Verifies hooks run outside batch transactions, partial failures commit successful batches, and atomic strategies work correctly.
Test after_transaction hook behavior in bulk_destroy operations across :stream, :atomic, and :atomic_batches strategies. Completes test coverage for after_transaction hooks across all three bulk operation types.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add comprehensive tests for
after_transactionhooks in bulk operations with PostgreSQL.These tests verify the fix in ash-project/ash#2532, which ensures
after_transactionhooks are called whenbatch transactions fail during
bulk_create,bulk_update, andbulk_destroyoperations.Test Coverage
transaction: :batchandtransaction: :allmodes:stream,:atomic, and:atomic_batchesstrategies:stream,:atomic, and:atomic_batchesstrategiesEach test file verifies:
after_transactionreceives proper success/error statusDependencies
Requires ash-project/ash#2532
Contributor checklist
Leave anything that you believe does not apply unchecked.