allows('read')->andReturn(DesignSystemTest::sample()); Functions\when('current_user_can')->justReturn(true); $ability = new DiviDesignSystemAbility($reader); self::assertTrue($ability->permission([])); $result = $ability->execute([]); self::assertSame('{{color:primary}}', $result['colors'][0]['placeholder']); self::assertSame('{{color:Nachtblau}}', $result['colors'][2]['placeholder']); self::assertSame('{{var:Telefon}}', $result['variables'][1]['placeholder']); self::assertSame(['heading' => 'Open Sans', 'body' => 'Lato'], $result['fonts']); self::assertSame('CTA primär', $result['presets'][1]['name']); self::assertStringContainsString('{{font:heading}}', $result['notes'][0]); self::assertTrue($ability->isDirect()); self::assertSame(['colors', 'variables', 'fonts', 'sizes', 'presets', 'notes'], $ability->outputSchema()['required']); } public function testNeedsEditPosts(): void { Functions\when('current_user_can')->justReturn(false); $result = (new DiviDesignSystemAbility(Mockery::mock(DesignSystemReader::class)))->permission([]); self::assertSame('lit_forbidden', $result->get_error_code()); } }