Remove Amazon filament price tracking
Deploy HickLab3D Dashboard / Deploy to production (push) Successful in 2m41s

This commit is contained in:
Hickmeister
2026-10-11 15:56:13 +01:00
parent 1c72937f9a
commit 96561dc3d2
20 changed files with 54 additions and 350 deletions
+11 -40
View File
@@ -3,7 +3,6 @@
namespace Tests\Feature;
use App\Models\EtsyConnection;
use App\Models\Filament;
use App\Models\Printer;
use App\Models\User;
use Illuminate\Foundation\Testing\LazilyRefreshDatabase;
@@ -52,13 +51,13 @@ class DashboardAccessTest extends TestCase
config()->set('services.dryer', ['url' => 'https://dryer.example.test/api/v1', 'api_key' => 'key']);
EtsyConnection::create(['shop_id' => 42, 'shop_name' => 'HickLab3D', 'access_token' => '123.token', 'refresh_token' => '123.refresh', 'expires_at' => now()->addHour()]);
$admin = User::factory()->create(['role' => 'admin']);
Filament::create(['userId' => $admin->id, 'filamentName' => 'Blue PLA', 'amazonUrl' => 'https://amazon.co.uk/blue', 'material' => 'PLA']);
$this->actingAs($admin)->get(route('dashboard'))->assertOk()
->assertSee('Awaiting dispatch')->assertSee('#77')->assertSee('12')
->assertSee('X1 Carbon')->assertSee('RUNNING')->assertSee('Blue PLA')
->assertSee('X1 Carbon')->assertSee('RUNNING')->assertSee('Print farm status')
->assertSee('#91')->assertSee('data-dashboard-chart="orders"', false)
->assertSee('data-dashboard-chart="materials"', false)
->assertSee('data-dashboard-chart="printers"', false)
->assertViewHas('printerChart', [['label' => 'Printing', 'count' => 1]])
->assertViewHas('orderChart', fn (array $chart): bool => end($chart['series']) === 1);
}
@@ -70,7 +69,7 @@ class DashboardAccessTest extends TestCase
$this->actingAs(User::factory()->create())->get(route('dashboard'))->assertOk()
->assertDontSee('Orders to pack')->assertDontSee('Recent shipments')
->assertDontSee('Awaiting dispatch')->assertSee('No materials tracked yet');
->assertDontSee('Awaiting dispatch')->assertSee('No printer status to chart');
Http::assertNothingSent();
}
@@ -113,7 +112,7 @@ class DashboardAccessTest extends TestCase
EtsyConnection::create(['shop_id' => 42, 'shop_name' => 'HickLab3D', 'access_token' => '123.token', 'refresh_token' => '123.refresh', 'expires_at' => now()->addHour()]);
$this->actingAs(User::factory()->create(['role' => 'admin']))->get(route('dashboard'))
->assertOk()->assertSee('Temporarily unavailable')->assertSee('No materials tracked yet')
->assertOk()->assertSee('Temporarily unavailable')->assertSee('No printer status to chart')
->assertDontSee('data-dashboard-chart="orders"', false);
}
@@ -126,41 +125,13 @@ class DashboardAccessTest extends TestCase
$this->assertGuest();
}
public function test_regular_user_cannot_create_filament(): void
{
$user = User::factory()->create();
$this->actingAs($user)->post(route('filaments.store'), [
'filamentName' => 'PLA Black', 'amazonUrl' => 'https://www.amazon.co.uk/example',
])->assertForbidden();
$this->assertDatabaseCount('filamentTracker', 0);
}
public function test_administrator_can_create_filament(): void
public function test_removed_filament_tracker_routes_are_unavailable(): void
{
$admin = User::factory()->create(['role' => 'admin']);
$this->actingAs($admin)->post(route('filaments.store'), [
'filamentName' => 'PLA Black', 'amazonUrl' => 'https://www.amazon.co.uk/example',
])->assertRedirect(route('filaments.index'));
$this->assertDatabaseHas('filamentTracker', ['filamentName' => 'PLA Black', 'userId' => $admin->id]);
}
public function test_filament_tracking_rejects_non_amazon_urls(): void
{
$admin = User::factory()->create(['role' => 'admin']);
$this->actingAs($admin)->post(route('filaments.store'), [
'filamentName' => 'PLA Black', 'amazonUrl' => 'https://example.test/product',
])->assertSessionHasErrors('amazonUrl');
$this->assertDatabaseCount('filamentTracker', 0);
}
public function test_administrator_can_view_filament_list(): void
{
$admin = User::factory()->create(['role' => 'admin']);
$this->actingAs($admin)->get(route('filaments.index'))->assertOk()->assertSee('Filament prices');
$this->actingAs($admin)->get('/filaments')->assertNotFound();
$this->actingAs($admin)->get('/filaments/create')->assertNotFound();
$this->actingAs($admin)->post('/filaments', ['filamentName' => 'PLA Black'])->assertNotFound();
}
public function test_administrator_can_manage_user_without_replacing_password(): void
@@ -169,9 +140,9 @@ class DashboardAccessTest extends TestCase
$member = User::factory()->create(['password' => 'original-password']);
$this->actingAs($admin)->patch(route('users.update', $member), [
'email' => 'new@example.test', 'role' => 'user', 'alertEmails' => 1, 'password' => '',
'email' => 'new@example.test', 'role' => 'user', 'password' => '',
])->assertRedirect();
$this->assertDatabaseHas('users', ['id' => $member->id, 'email' => 'new@example.test', 'alertEmails' => 1]);
$this->assertDatabaseHas('users', ['id' => $member->id, 'email' => 'new@example.test']);
$this->assertTrue(Hash::check('original-password', $member->fresh()->password));
}