Remove Amazon filament price tracking
Deploy HickLab3D Dashboard / Deploy to production (push) Successful in 2m41s
Deploy HickLab3D Dashboard / Deploy to production (push) Successful in 2m41s
This commit is contained in:
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user