refactor(#120): remove unnecessary js, improve cache handling

This commit is contained in:
Benjamin Nussbaum 2025-12-30 09:43:05 +01:00
parent 3cdc267809
commit 50853728bc
4 changed files with 324 additions and 274 deletions

View file

@ -65,6 +65,46 @@ it('loads plugins from catalog URL', function (): void {
$component->assertSee('testuser');
$component->assertSee('A test plugin');
$component->assertSee('MIT');
$component->assertSee('Preview');
});
it('hides preview button when screenshot_url is missing', function (): void {
// Clear cache first to ensure fresh data
Cache::forget('catalog_plugins');
// Mock the HTTP response for the catalog URL without screenshot_url
$catalogData = [
'test-plugin' => [
'name' => 'Test Plugin Without Screenshot',
'author' => ['name' => 'Test Author', 'github' => 'testuser'],
'author_bio' => [
'description' => 'A test plugin',
],
'license' => 'MIT',
'trmnlp' => [
'zip_url' => 'https://example.com/plugin.zip',
],
'byos' => [
'byos_laravel' => [
'compatibility' => true,
],
],
'logo_url' => 'https://example.com/logo.png',
'screenshot_url' => null,
],
];
$yamlContent = Yaml::dump($catalogData);
Http::fake([
config('app.catalog_url') => Http::response($yamlContent, 200),
]);
Livewire::withoutLazyLoading();
Volt::test('catalog.index')
->assertSee('Test Plugin Without Screenshot')
->assertDontSeeHtml('variant="subtle" icon="eye"');
});
it('shows error when plugin not found', function (): void {
@ -114,3 +154,46 @@ it('shows error when zip_url is missing', function (): void {
$component->assertHasErrors();
});
it('can preview a plugin', function (): void {
// Clear cache first to ensure fresh data
Cache::forget('catalog_plugins');
// Mock the HTTP response for the catalog URL
$catalogData = [
'test-plugin' => [
'name' => 'Test Plugin',
'author' => ['name' => 'Test Author', 'github' => 'testuser'],
'author_bio' => [
'description' => 'A test plugin description',
],
'license' => 'MIT',
'trmnlp' => [
'zip_url' => 'https://example.com/plugin.zip',
],
'byos' => [
'byos_laravel' => [
'compatibility' => true,
],
],
'logo_url' => 'https://example.com/logo.png',
'screenshot_url' => 'https://example.com/screenshot.png',
],
];
$yamlContent = Yaml::dump($catalogData);
Http::fake([
config('app.catalog_url') => Http::response($yamlContent, 200),
]);
Livewire::withoutLazyLoading();
Volt::test('catalog.index')
->assertSee('Test Plugin')
->call('previewPlugin', 'test-plugin')
->assertSet('previewingPlugin', 'test-plugin')
->assertSet('previewData.name', 'Test Plugin')
->assertSee('Preview Test Plugin')
->assertSee('A test plugin description');
});