5, 'post_type' => 'page']); Functions\when('get_post')->justReturn($post); Functions\when('current_user_can')->justReturn(true); $schema = Mockery::mock(ContentSchema::class); $schema->allows('isManaged')->andReturn(true); $presenter = Mockery::mock(PostPresenter::class); $presenter->expects('full')->with($post)->andReturn(['id' => 5]); $ability = new ContentGetAbility($schema, $presenter); self::assertTrue($ability->permission(['post_id' => 5])); self::assertSame(['id' => 5], $ability->execute(['post_id' => 5])); } public function testMissingPostIsNotFound(): void { Functions\when('get_post')->justReturn(null); $schema = Mockery::mock(ContentSchema::class); $ability = new ContentGetAbility($schema, Mockery::mock(PostPresenter::class)); self::assertSame('lit_not_found', $ability->permission(['post_id' => 99])->get_error_code()); } public function testOutputSchemaAllowsNullContentForDivi(): void { $ability = new ContentGetAbility(Mockery::mock(ContentSchema::class), Mockery::mock(PostPresenter::class)); self::assertSame(['string', 'null'], $ability->outputSchema()['properties']['content']['type']); self::assertTrue($ability->isDirect()); } }