DatabaseCleaner/database_cleaner-active_record

truncation and deletion doesn't call after_commit

tomocrafter opened this issue · 0 comments

Currently, I am using the deletion strategy in request testing. With the transaction strategy, I cannot access the models that the controller creates during the test (possibly because it's in a different thread?).

The models created during the test have an after_commit callback set, which includes a process to delete the index from Elasticsearch when the model is deleted. However, database_cleaner does perform the deletion but it does not call the after_commit callback.

connection.execute("DELETE FROM #{connection.quote_table_name(table_name)} WHERE 1=1")

How can I get the after_commit callback to be called, or make the request test work with the transaction strategy?

Thank you.