test: 🚨 add tests for some components

isekai
alistair3149 9 months ago
parent cd3a9d4358
commit a49623a096
No known key found for this signature in database

@ -4,7 +4,10 @@ declare( strict_types=1 );
namespace MediaWiki\Skins\Citizen\Tests\Components; namespace MediaWiki\Skins\Citizen\Tests\Components;
use MediaWiki\Skins\Citizen\Components\CitizenComponentLink;
use MediaWiki\Skins\Citizen\Components\CitizenComponentMenuListItem;
use MediaWikiUnitTestCase; use MediaWikiUnitTestCase;
use PHPUnit\Framework\MockObject\MockObject;
/** /**
* @group Citizen * @group Citizen
@ -14,10 +17,59 @@ use MediaWikiUnitTestCase;
class CitizenComponentMenuListItemTest extends MediaWikiUnitTestCase { class CitizenComponentMenuListItemTest extends MediaWikiUnitTestCase {
/** /**
* @covers ::__construct
* @covers ::getTemplateData * @covers ::getTemplateData
* @dataProvider provideMenuListItemData
*/ */
public function testGetTemplateData(): void { public function testGetTemplateData(
// TODO: Add tests string $class,
$this->expectNotToPerformAssertions(); string $id,
string $expectedClass,
string $expectedId
): void {
$menuItem = new CitizenComponentMenuListItem(
$this->getMockLink(),
$class,
$id
);
$templateData = $menuItem->getTemplateData();
$this->assertArrayHasKey( 'array-links', $templateData );
$this->assertArrayHasKey( 'item-class', $templateData );
$this->assertArrayHasKey( 'item-id', $templateData );
$this->assertSame( $expectedClass, $templateData['item-class'] );
$this->assertSame( $expectedId, $templateData['item-id'] );
$this->assertSame( '/test', $templateData['array-links']['href'] );
$this->assertSame( 'Test Link', $templateData['array-links']['text'] );
}
public static function provideMenuListItemData(): array {
return [
'minimal parameters' => [
'',
'',
'',
'',
],
'with class and id' => [
'test-class',
'test-id',
'test-class',
'test-id',
],
];
}
private function getMockLink(): CitizenComponentLink&MockObject {
$mockLink = $this->createMock( CitizenComponentLink::class );
$mockLink->expects( $this->once() )
->method( 'getTemplateData' )
->willReturn( [
'href' => '/test',
'text' => 'Test Link'
] );
return $mockLink;
} }
} }

@ -16,7 +16,7 @@ class CitizenComponentPageToolsTest extends MediaWikiUnitTestCase {
/** /**
* @covers ::getTemplateData * @covers ::getTemplateData
*/ */
public function getTemplateData() { public function testGetTemplateData() {
// TODO: Add tests // TODO: Add tests
$this->expectNotToPerformAssertions(); $this->expectNotToPerformAssertions();
} }

Loading…
Cancel
Save