Add test for getting the correct Sort order from MMTL items, fix incorrect test class name
This commit is contained in:
parent
b221134ce1
commit
78c63c6725
|
@ -88,6 +88,40 @@ class GridFieldOrderableRowsTest extends SapphireTest
|
||||||
$this->assertEquals($desiredOrder, $newOrder);
|
$this->assertEquals($desiredOrder, $newOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testManyManyThroughListSortOrdersAreUsedForInitialRender()
|
||||||
|
{
|
||||||
|
/** @var ThroughDefiner $record */
|
||||||
|
$record = $this->objFromFixture(ThroughDefiner::class, 'DefinerOne');
|
||||||
|
|
||||||
|
$orderable = new GridFieldOrderableRows('Sort');
|
||||||
|
$config = new GridFieldConfig_RelationEditor();
|
||||||
|
$config->addComponent($orderable);
|
||||||
|
|
||||||
|
$grid = new GridField(
|
||||||
|
'Belongings',
|
||||||
|
'Testing Many Many',
|
||||||
|
$record->Belongings()->sort('Sort'),
|
||||||
|
$config
|
||||||
|
);
|
||||||
|
|
||||||
|
// Get the first record, which would be the first one to have column contents generated
|
||||||
|
/** @var ThroughIntermediary $expected */
|
||||||
|
$intermediary = $this->objFromFixture(ThroughIntermediary::class, 'One');
|
||||||
|
|
||||||
|
$result = $orderable->getColumnContent($grid, $record, 'irrelevant');
|
||||||
|
|
||||||
|
$this->assertContains(
|
||||||
|
'Belongings[GridFieldEditableColumns][' . $record->ID . '][Sort]',
|
||||||
|
$result,
|
||||||
|
'The field name is indexed under the record\'s ID'
|
||||||
|
);
|
||||||
|
$this->assertContains(
|
||||||
|
'value="' . $intermediary->Sort . '"',
|
||||||
|
$result,
|
||||||
|
'The value comes from the MMTL intermediary Sort value'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public function testSortableChildClass()
|
public function testSortableChildClass()
|
||||||
{
|
{
|
||||||
$orderable = new GridFieldOrderableRows('Sort');
|
$orderable = new GridFieldOrderableRows('Sort');
|
||||||
|
|
|
@ -12,7 +12,7 @@ use Symbiote\GridFieldExtensions\Tests\Stub\ThroughIntermediary;
|
||||||
use Symbiote\GridFieldExtensions\Tests\Stub\ThroughBelongs;
|
use Symbiote\GridFieldExtensions\Tests\Stub\ThroughBelongs;
|
||||||
use Symbiote\GridFieldExtensions\GridFieldOrderableRows;
|
use Symbiote\GridFieldExtensions\GridFieldOrderableRows;
|
||||||
|
|
||||||
class OrderableRowsThroughTest extends SapphireTest
|
class OrderableRowsThroughVersionedTest extends SapphireTest
|
||||||
{
|
{
|
||||||
protected static $fixture_file = 'OrderableRowsThroughTest.yml';
|
protected static $fixture_file = 'OrderableRowsThroughTest.yml';
|
||||||
|
|
||||||
|
@ -105,7 +105,7 @@ class OrderableRowsThroughTest extends SapphireTest
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->assertTrue($differenceFound, 'All records should have changes in draft');
|
$this->assertTrue($differenceFound, 'All records should have changes in draft');
|
||||||
|
|
||||||
// Verify live stage has NOT reordered
|
// Verify live stage has NOT reordered
|
||||||
Versioned::set_stage(Versioned::LIVE);
|
Versioned::set_stage(Versioned::LIVE);
|
||||||
$sameOrder = $parent->$relationName()->sort($sortName)->column('ID');
|
$sameOrder = $parent->$relationName()->sort($sortName)->column('ID');
|
||||||
|
|
|
@ -2,18 +2,17 @@
|
||||||
|
|
||||||
namespace Symbiote\GridFieldExtensions\Tests\Stub;
|
namespace Symbiote\GridFieldExtensions\Tests\Stub;
|
||||||
|
|
||||||
use SilverStripe\ORM\DataObject;
|
|
||||||
use SilverStripe\ORM\FieldType\DBInt;
|
|
||||||
use SilverStripe\Dev\TestOnly;
|
use SilverStripe\Dev\TestOnly;
|
||||||
|
use SilverStripe\ORM\DataObject;
|
||||||
|
|
||||||
class ThroughIntermediary extends DataObject implements TestOnly
|
class ThroughIntermediary extends DataObject implements TestOnly
|
||||||
{
|
{
|
||||||
private static $table_name = 'IntermediaryThrough';
|
private static $table_name = 'IntermediaryThrough';
|
||||||
|
|
||||||
private static $db = [
|
private static $db = [
|
||||||
'Sort' => DBInt::class,
|
'Sort' => 'Int',
|
||||||
];
|
];
|
||||||
|
|
||||||
private static $has_one = [
|
private static $has_one = [
|
||||||
'Defining' => ThroughDefiner::class,
|
'Defining' => ThroughDefiner::class,
|
||||||
'Belonging' => ThroughBelongs::class,
|
'Belonging' => ThroughBelongs::class,
|
||||||
|
|
Loading…
Reference in New Issue