diff --git a/src/Datasets.php b/src/Datasets.php index 26dc9cbc..8626332e 100644 --- a/src/Datasets.php +++ b/src/Datasets.php @@ -77,10 +77,10 @@ final class Datasets $dataSetDescriptions = []; $dataSetValues = []; - foreach ($data as $values) { + foreach ($data as $key => $values) { $values = is_array($values) ? $values : [$values]; - $dataSetDescriptions[] = $description . self::getDataSetDescription($values); + $dataSetDescriptions[] = $description . self::getDataSetDescription($key, $values); $dataSetValues[] = $values; } @@ -104,12 +104,15 @@ final class Datasets } /** + * @param int|string $key * @param array $data */ - private static function getDataSetDescription(array $data): string + private static function getDataSetDescription($key, array $data): string { $exporter = new Exporter(); - return \sprintf(' with (%s)', $exporter->shortenedRecursiveExport($data)); + $nameInsert = is_string($key) ? \sprintf('data set "%s" ', $key) : ''; + + return \sprintf(' with %s(%s)', $nameInsert, $exporter->shortenedRecursiveExport($data)); } } diff --git a/tests/.snapshots/success.txt b/tests/.snapshots/success.txt index 950cdcc4..06190d84 100644 --- a/tests/.snapshots/success.txt +++ b/tests/.snapshots/success.txt @@ -255,6 +255,9 @@ ✓ eager wrapped registered datasets with (1) ✓ eager wrapped registered datasets with (2) ✓ eager registered wrapped datasets did the job right + ✓ named datasets with data set "one" (1) + ✓ named datasets with data set "two" (2) + ✓ named datasets did the job right ✓ lazy named datasets with (Bar Object (...)) ✓ it creates unique test case names with ('Name 1', Pest\Plugin Object (), true) #1 ✓ it creates unique test case names with ('Name 1', Pest\Plugin Object (), true) #2 @@ -345,6 +348,9 @@ ✓ it throws exception when `process isolation` is true ✓ it do not throws exception when `process isolation` is false + PASS Tests\Unit\Datasets + ✓ it show the names of named datasets in their description + PASS Tests\Unit\Plugins\Version ✓ it outputs the version when --version is used ✓ it do not outputs version when --version is not used @@ -385,5 +391,5 @@ ✓ depends with defined arguments ✓ depends run test only once - Tests: 7 skipped, 227 passed + Tests: 7 skipped, 231 passed \ No newline at end of file diff --git a/tests/Features/Datasets.php b/tests/Features/Datasets.php index 81f41b34..54618d92 100644 --- a/tests/Features/Datasets.php +++ b/tests/Features/Datasets.php @@ -95,6 +95,18 @@ test('eager registered wrapped datasets did the job right', function () use ($st expect($state->text)->toBe('1212121212'); }); +test('named datasets', function ($text) use ($state, $datasets) { + $state->text .= $text; + expect($datasets)->toContain([$text]); +})->with([ + 'one' => [1], + 'two' => [2], +]); + +test('named datasets did the job right', function () use ($state) { + expect($state->text)->toBe('121212121212'); +}); + class Bar { public $name = 1; diff --git a/tests/Unit/Datasets.php b/tests/Unit/Datasets.php new file mode 100644 index 00000000..88978e41 --- /dev/null +++ b/tests/Unit/Datasets.php @@ -0,0 +1,13 @@ + [1], + 'two' => [[2]], + ])); + + expect($descriptions[0])->toBe('test description with data set "one" (1)'); + expect($descriptions[1])->toBe('test description with data set "two" (array(2))'); +});