Codeception / Codeception/module-db

Make optional the auto-erase of the records, added by `haveInDatabase()`

Open
#68 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
PHP
Stars
23
Forks
31
PR merge metrics
No merged PRs in 30d

Description

#### Problem
Currently, all records, added by `haveInDatabase()` method during test, are automatically removed after the end of the test.
Although this is a documented behaviour, for me it adds more confusion than profit.

In case when I need all the changes, made during test, to disappear after the test, I can't rely solely on this behaviour, because changes may be done not only by `haveInDatabase()`. So I still need to use other things for keeping tests isolated (wrapping tests in transactions, or to re-populate database from dump before each test, etc).

And in other case, when I do not need tests isolation, I am ok with the fact that each test changes something in database, so auto-erasing some records only adds confusion for me.

So, I'd like to be able to turn this behaviour off in my tests.

Currently we have a `skip_cleanup_if_failed` configuration parameter, but it does not give full control over the auto-erase, because allows to omit it only when tests fail (which should be the default behaviour, IMHO). Also, its name is confusing (see [issue #67](https://github.com/Codeception/module-db/issues/67)).

#### Proposed solution
Let's add another boolean configuration parameter, responsible for this auto-erase. For example, `auto_erase`, or `cleanup` (could be used after renaming current `cleanup` to `repopulate` - see [issue #67](https://github.com/Codeception/module-db/issues/67))

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the haveInDatabase() implementation and the configuration handling for skip_cleanup_if_failed. Trace where records are automatically erased after tests, then confirm the chosen boolean setting can disable that behavior while preserving the existing default and failure cleanup behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
database, testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.