diff --git a/app/Http/Controllers/Woo/SettingsController.php b/app/Http/Controllers/Woo/SettingsController.php new file mode 100644 index 0000000..4703fcd --- /dev/null +++ b/app/Http/Controllers/Woo/SettingsController.php @@ -0,0 +1,14 @@ + @endforeach + +
+ + + + + Settings + +
diff --git a/resources/views/woo/settings.blade.php b/resources/views/woo/settings.blade.php new file mode 100644 index 0000000..d494428 --- /dev/null +++ b/resources/views/woo/settings.blade.php @@ -0,0 +1,47 @@ + + Settings + + + +

Connect WooCommerce stores from the WordPress plugin, then manage them here.

+ + Manage connected stores + + +
+ + + + + + +
+ @csrf + +
+
+
+
diff --git a/routes/web.php b/routes/web.php index 057a2c0..60963c8 100644 --- a/routes/web.php +++ b/routes/web.php @@ -9,6 +9,7 @@ use App\Http\Controllers\Woo\ConnectWordPressController; use App\Http\Controllers\Woo\DashboardController; use App\Http\Controllers\Woo\OrderController; use App\Http\Controllers\Woo\ProductController; +use App\Http\Controllers\Woo\SettingsController; use App\Http\Controllers\Woo\StoreController; use App\Http\Controllers\WooWebhookController; use Illuminate\Support\Facades\Route; @@ -56,6 +57,7 @@ Route::middleware(['auth', 'platform.session'])->group(function () { Route::post('/categories/sync', [CategoryController::class, 'sync'])->name('woo.categories.sync'); Route::get('/stores', [StoreController::class, 'index'])->name('woo.stores.index'); Route::delete('/stores/{store}', [StoreController::class, 'destroy'])->name('woo.stores.destroy'); + Route::get('/settings', [SettingsController::class, 'edit'])->name('woo.settings'); Route::get('/wallet', fn () => redirect()->away(ladill_account_url('/wallet')))->name('woo.wallet'); Route::get('/team', fn () => redirect()->away(ladill_account_url('/account/team')))->name('account.team'); diff --git a/tests/Feature/WooWebTest.php b/tests/Feature/WooWebTest.php index 486e8ed..39441fa 100644 --- a/tests/Feature/WooWebTest.php +++ b/tests/Feature/WooWebTest.php @@ -219,6 +219,17 @@ class WooWebTest extends TestCase ]); } + public function test_authenticated_user_can_view_settings(): void + { + $user = User::factory()->create(); + + $this->actingAs($user) + ->get(route('woo.settings')) + ->assertOk() + ->assertSee('Settings') + ->assertSee('Manage connected stores'); + } + public function test_merchant_can_view_products_page(): void { $user = User::factory()->create();