UPSTREAM BASELINE: nextcloud/spreed v22.0.12 (без изменений)
Type checking / changes (push) Has been cancelled
Type checking / test (push) Has been cancelled
Type checking / typescript-summary (push) Has been cancelled
Node tests / changes (push) Has been cancelled
Node tests / test (push) Has been cancelled
Node tests / test-summary (push) Has been cancelled
Type checking / changes (push) Has been cancelled
Type checking / test (push) Has been cancelled
Type checking / typescript-summary (push) Has been cancelled
Node tests / changes (push) Has been cancelled
Node tests / test (push) Has been cancelled
Node tests / test-summary (push) Has been cancelled
Источник: https://github.com/nextcloud/spreed/archive/refs/tags/v22.0.12.tar.gz С этого коммита ветка официального Nextcloud Talk отрезана (решение владельца 2026-07-06). Все дальнейшие изменения — только наши; версии релизов: 22.0.12-f7.N.
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
namespace OCA\Talk\Tests\Unit;
|
||||
|
||||
use PHPUnit\Framework\Attributes\DataProvider;
|
||||
use Test\TestCase;
|
||||
|
||||
class EventDocumentationTest extends TestCase {
|
||||
public static function dataEventDocumentation(): array {
|
||||
$dir = new \DirectoryIterator(__DIR__ . '/../../lib/Events');
|
||||
|
||||
$data = [];
|
||||
foreach ($dir as $fileinfo) {
|
||||
if (!$fileinfo->isDot()) {
|
||||
$data[] = ['OCA\\Talk\\Events\\' . substr($fileinfo->getFilename(), 0, -4)];
|
||||
}
|
||||
}
|
||||
sort($data);
|
||||
return $data;
|
||||
}
|
||||
|
||||
#[DataProvider('dataEventDocumentation')]
|
||||
public function testEventDocumentation(string $eventClass): void {
|
||||
$reflectionClass = new \ReflectionClass($eventClass);
|
||||
if ($reflectionClass->isAbstract()) {
|
||||
self::assertTrue(true, 'Abstract event class ' . $eventClass . ' does not have to be documented');
|
||||
return;
|
||||
}
|
||||
|
||||
$classDocBlock = $reflectionClass->getDocComment();
|
||||
if (is_string($classDocBlock) && str_contains($classDocBlock, '@deprecated')) {
|
||||
self::assertTrue(true, 'Deprecated event ' . $eventClass . ' does not have to be documented');
|
||||
return;
|
||||
}
|
||||
if (is_string($classDocBlock) && str_contains($classDocBlock, '@internal')) {
|
||||
self::assertTrue(true, 'Internal event ' . $eventClass . ' does not have to be documented');
|
||||
return;
|
||||
}
|
||||
|
||||
$docs = file_get_contents(__DIR__ . '/../../docs/events.md');
|
||||
$eventIsDocumented = str_contains($docs, 'Before event: `' . $eventClass . '`')
|
||||
|| str_contains($docs, 'After event: `' . $eventClass . '`')
|
||||
|| str_contains($docs, 'Final event: `' . $eventClass . '`')
|
||||
|| str_contains($docs, 'Event: `' . $eventClass . '`');
|
||||
self::assertTrue($eventIsDocumented, 'Asserting that event ' . $eventClass . ' is documented');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user