setSerializer(new ArraySerializer); return $fractal->createData( new Fractal\Resource\Item($status, new StatusStatelessTransformer) )->toArray(); } function boostOf(string $scope): array { $author = User::factory()->create(); $author->refresh(); $sharer = User::factory()->create(); $sharer->refresh(); $original = Status::factory()->create([ 'profile_id' => $author->profile_id, 'type' => 'photo', 'scope' => $scope, 'visibility' => $scope, ]); $boost = Status::factory()->create([ 'profile_id' => $sharer->profile_id, 'type' => 'share', 'scope' => 'public', 'visibility' => 'public', 'reblog_of_id' => $original->id, ]); return [$boost, $original]; } it('does not embed a private reblog target', function () { [$boost] = boostOf('private'); $res = transformStateless($boost); expect($res['reblog'])->toBeNull(); }); it('embeds a public reblog target', function () { [$boost, $original] = boostOf('public'); $res = transformStateless($boost); expect($res['reblog'])->not->toBeNull(); expect((string) $res['reblog']['id'])->toBe((string) $original->id); });