Skip to content

Commit 935be19

Browse files
fix(sharereview): harden and optimize implementation and testing
Assisted-by: Claude Code:claude-sonnet-4-6 Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
1 parent 4a8e36d commit 935be19

2 files changed

Lines changed: 8 additions & 7 deletions

File tree

lib/ShareReview/ShareReviewSource.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,11 @@ private function fetchAllShares(): array {
7676
try {
7777
$qb = $this->db->getQueryBuilder();
7878
$qb->select(
79-
'a.id', 'a.type', 'a.participant',
79+
'a.id', 'a.board_id', 'a.type', 'a.participant',
8080
'a.permission_edit', 'a.permission_share', 'a.permission_manage'
8181
)
82-
->addSelect($qb->createFunction('b.title AS board_title'))
83-
->addSelect($qb->createFunction('b.owner AS board_owner'))
82+
->selectAlias('b.title', 'board_title')
83+
->selectAlias('b.owner', 'board_owner')
8484
->from(self::ACL_TABLE, 'a')
8585
->leftJoin('a', self::BOARDS_TABLE, 'b', $qb->expr()->eq('a.board_id', 'b.id'))
8686
->orderBy('a.id', 'ASC');
@@ -97,7 +97,7 @@ private function fetchAllShares(): array {
9797
/** @param array<string, mixed> $share */
9898
private function resolveObjectName(array $share): string {
9999
$title = (string)($share['board_title'] ?? '');
100-
$boardId = (int)$share['id'];
100+
$boardId = (int)($share['board_id'] ?? $share['id']);
101101
return ($title !== '' ? $title : "Board $boardId") . ' (Board)';
102102
}
103103

tests/unit/ShareReview/ShareReviewSourceTest.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,13 @@ private function makeQb(array $fetchRows = [], int $statementRows = 0): MockObje
4747
$qb = $this->createMock(IQueryBuilder::class);
4848
$qb->method('select')->willReturnSelf();
4949
$qb->method('addSelect')->willReturnSelf();
50+
$qb->method('selectAlias')->willReturnSelf();
5051
$qb->method('from')->willReturnSelf();
5152
$qb->method('leftJoin')->willReturnSelf();
5253
$qb->method('where')->willReturnSelf();
5354
$qb->method('orderBy')->willReturnSelf();
5455
$qb->method('delete')->willReturnSelf();
5556
$qb->method('createNamedParameter')->willReturn('?');
56-
$qb->method('createFunction')->willReturnArgument(0);
5757
$qb->method('expr')->willReturn($expr);
5858
$qb->method('executeQuery')->willReturn($this->makeResult($fetchRows));
5959
$qb->method('executeStatement')->willReturn($statementRows);
@@ -67,13 +67,13 @@ private function makeThrowingQb(): MockObject {
6767
$qb = $this->createMock(IQueryBuilder::class);
6868
$qb->method('select')->willReturnSelf();
6969
$qb->method('addSelect')->willReturnSelf();
70+
$qb->method('selectAlias')->willReturnSelf();
7071
$qb->method('from')->willReturnSelf();
7172
$qb->method('leftJoin')->willReturnSelf();
7273
$qb->method('where')->willReturnSelf();
7374
$qb->method('orderBy')->willReturnSelf();
7475
$qb->method('delete')->willReturnSelf();
7576
$qb->method('createNamedParameter')->willReturn('?');
76-
$qb->method('createFunction')->willReturnArgument(0);
7777
$qb->method('expr')->willReturn($expr);
7878
$qb->method('executeQuery')->willThrowException($this->createMock(Exception::class));
7979
$qb->method('executeStatement')->willThrowException($this->createMock(Exception::class));
@@ -84,6 +84,7 @@ private function makeThrowingQb(): MockObject {
8484
private function makeShareRow(array $overrides = []): array {
8585
return array_merge([
8686
'id' => 1,
87+
'board_id' => 10,
8788
'type' => 0,
8889
'participant' => 'bob',
8990
'board_title' => 'My Board',
@@ -157,7 +158,7 @@ public function testGetSharesRemoteShare(): void {
157158

158159
public function testGetSharesMissingBoardFallback(): void {
159160
$this->db->method('getQueryBuilder')->willReturn(
160-
$this->makeQb([$this->makeShareRow(['id' => 42, 'board_title' => null, 'board_owner' => null])])
161+
$this->makeQb([$this->makeShareRow(['board_id' => 42, 'board_title' => null, 'board_owner' => null])])
161162
);
162163

163164
$shares = $this->source->getShares();

0 commit comments

Comments
 (0)