Add name to description for named datasets

This commit is contained in:
Stephen Shead
2020-07-19 19:05:54 +10:00
parent be8a64e4b8
commit edcd2cb50e
3 changed files with 24 additions and 5 deletions

View File

@ -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<int, mixed> $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));
}
}

View File

@ -345,6 +345,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 +388,5 @@
✓ depends with defined arguments
✓ depends run test only once
Tests: 7 skipped, 227 passed
Tests: 7 skipped, 228 passed

13
tests/Unit/Datasets.php Normal file
View File

@ -0,0 +1,13 @@
<?php
use Pest\Datasets;
it('show the names of named datasets in their description', function () {
$descriptions = array_keys(Datasets::resolve('test description', [
'one' => [1],
'two' => [[2]],
]));
$this->assertSame('test description with data set "one" (1)', $descriptions[0]);
$this->assertSame('test description with data set "two" (array(2))', $descriptions[1]);
});