refactor: DesignRights::themeOptions() ohne ungenutzten DesignSystemWriter
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5.5
parent
0a24753b4d
commit
bfe6623fe8
@@ -78,21 +78,18 @@ final class DesignRightsTest extends TestCase
|
||||
|
||||
public function testThemeOptionsNeedEditThemeOptionsAndTheThemeCustomizerRight(): void
|
||||
{
|
||||
$writer = Mockery::mock(DesignSystemWriter::class);
|
||||
// Divi's customizer does not need the Visual Builder (plan 4d, rights).
|
||||
$writer->expects('canUseVisualBuilder')->never();
|
||||
$options = Mockery::mock(ThemeOptionsAdapter::class);
|
||||
$options->allows('canCustomize')->andReturn(true, false);
|
||||
Functions\when('current_user_can')->alias(static fn (string $cap): bool => $cap === 'edit_theme_options');
|
||||
|
||||
self::assertNull(DesignRights::themeOptions($writer, $options));
|
||||
$refusal = self::assertToolError(DesignRights::themeOptions($writer, $options), 'forbidden');
|
||||
self::assertNull(DesignRights::themeOptions($options));
|
||||
$refusal = self::assertToolError(DesignRights::themeOptions($options), 'forbidden');
|
||||
self::assertStringContainsString('Theme-Anpassung', $refusal['message']);
|
||||
self::assertStringContainsString('keine Theme-Optionen', $refusal['message']);
|
||||
self::assertStringContainsString('Rollen-Editor', $refusal['hint']);
|
||||
|
||||
Functions\when('current_user_can')->justReturn(false);
|
||||
$refusal = self::assertToolError(DesignRights::themeOptions($writer, $options), 'forbidden');
|
||||
$refusal = self::assertToolError(DesignRights::themeOptions($options), 'forbidden');
|
||||
self::assertStringContainsString('Theme-Optionen ändern erfordert', $refusal['message']);
|
||||
self::assertStringContainsString('edit_theme_options', $refusal['message']);
|
||||
}
|
||||
|
||||
@@ -179,7 +179,7 @@ final class DiviDesignRestoreAbilityTest extends TestCase
|
||||
new PresetRestorePlanner($writer),
|
||||
new ColorRestorePlanner($writer, $colors),
|
||||
new VariableRestorePlanner($writer, $variables),
|
||||
new ThemeOptionsRestorePlanner($writer, $options ?? self::optionStore($noOptions))
|
||||
new ThemeOptionsRestorePlanner($options ?? self::optionStore($noOptions))
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -49,11 +49,7 @@ final class DiviThemeOptionsUpdateAbilityTest extends TestCase
|
||||
bool $customize = true,
|
||||
?ThemeOptionsAdapter $options = null
|
||||
): DiviThemeOptionsUpdateAbility {
|
||||
$writer = Mockery::mock(DesignSystemWriter::class);
|
||||
$writer->allows('canUseVisualBuilder')->andReturn(true);
|
||||
|
||||
return new DiviThemeOptionsUpdateAbility(
|
||||
$writer,
|
||||
$options ?? ThemeOptionsAreaTest::adapter($this->stored, $this->writes, $sanitize, $customize),
|
||||
FontCheckTest::catalog(),
|
||||
new DesignChange($snapshots ?? Mockery::mock(SnapshotStore::class), new FakeChangeLog(3))
|
||||
|
||||
@@ -36,13 +36,8 @@ final class ThemeOptionsRestorePlannerTest extends TestCase
|
||||
{
|
||||
$stored = [];
|
||||
$writes = [];
|
||||
$writer = Mockery::mock(DesignSystemWriter::class);
|
||||
$writer->allows('canUseVisualBuilder')->andReturn(true);
|
||||
|
||||
return new ThemeOptionsRestorePlanner(
|
||||
$writer,
|
||||
ThemeOptionsAreaTest::adapter($stored, $writes, null, $customize)
|
||||
);
|
||||
return new ThemeOptionsRestorePlanner(ThemeOptionsAreaTest::adapter($stored, $writes, null, $customize));
|
||||
}
|
||||
|
||||
public function testAreaFeaturesAndDesignArea(): void
|
||||
|
||||
Reference in New Issue
Block a user