. // }}} namespace App\Tests\Entity; use App\Core\DB\DB; use App\Core\VisibilityScope; use App\Util\GNUsocialTestCase; use Functional as F; use Jchook\AssertThrows\AssertThrows; class NoteTest extends GNUsocialTestCase { use AssertThrows; // public function testGetReplies() // { // $user = DB::findOneBy('local_user', ['nickname' => 'taken_user']); // $notes = DB::findBy('note', ['actor_id' => $user->getId(), 'content' => 'some content', 'reply_to' => null]); // dd($notes, F\map($notes, fn ($n) => $n->getReplies()), DB::dql('select n from note n')); // $note = DB::findOneBy('note', ['actor_id' => $user->getId(), 'content' => 'some content', 'reply_to' => null]); // $replies = $note->getReplies(); // // dd($note, $replies); // static::assertSame('some other content', $replies[0]->getContent()); // static::assertSame($user->getId(), $replies[0]->getActorId()); // static::assertSame($note->getId(), $replies[0]->getReplyTo()); // static::assertSame($user->getNickname(), $replies[0]->getReplyToNickname()); // } public function testIsVisibleTo() { $actor1 = DB::findOneBy('actor', ['nickname' => 'taken_user']); $actor2 = DB::findOneBy('actor', ['nickname' => 'taken_group']); $actor3 = DB::findOneBy('actor', ['nickname' => 'some_user']); $note_visible_to_1 = DB::findBy('note', ['actor_id' => $actor1->getId(), 'content' => 'private note', 'scope' => VisibilityScope::COLLECTION->value], limit: 1)[0]; static::assertTrue($note_visible_to_1->isVisibleTo($actor1)); static::assertFalse($note_visible_to_1->isVisibleTo($actor2)); static::assertFalse($note_visible_to_1->isVisibleTo($actor3)); $note_public = DB::findBy('note', ['actor_id' => $actor1->getId(), 'content' => 'some content'], limit: 1)[0]; static::assertTrue($note_public->isVisibleTo($actor1)); static::assertTrue($note_public->isVisibleTo($actor2)); static::assertTrue($note_public->isVisibleTo($actor3)); $group_note = DB::findBy('note', ['actor_id' => $actor1->getId(), 'content' => 'group note', 'scope' => VisibilityScope::GROUP->value], limit: 1)[0]; static::assertTrue($group_note->isVisibleTo($actor3)); static::assertFalse($group_note->isVisibleTo($actor2)); static::assertFalse($group_note->isVisibleTo($actor1)); } }