使用Dusk Jetstream和Intertia JS进行Laravel浏览器测试,使渲染日志保持在页面中

问题描述

我正在研究Laravel 8项目。我注意到在Laravel 8中,包括身份验证在内的几项更改。我现在使用JetStream进行身份验证,并使用Inertia开发SPA应用程序。我也在使用Dusk为我的应用程序编写浏览器测试。但是在测试中,它会继续呈现登录页面

我有一个呈现惯性js视图的控制器。

class MenuCategoryController extends Controller
{
    //
    public function index()
    {
        $menuCategories = auth()->user()->restaurant->menu->menuCategories()->get();

        return Inertia::render('MenuCategory/MenuCategoryList',[ 'menuCategories' => $menuCategories ]);
    }
}

这是我的浏览器测试。

class MenuCategoryTest extends DuskTestCase
{
    /**
     * A Dusk test example.
     *
     * @return void
     */
    public function testMenuCategoryListdisplayed()
    {
        $this->browse(function (browser $browser) {
            $restaurantAdmin = $this->getRestaurantAdmin();
            $restaurant = Restaurant::factory()->create([ 'user_id' => $restaurantAdmin->id,]);
            $browser->loginAs($restaurantAdmin)
                ->visit(route('admin.menu-categories'))
                ->waitFor('.menu-categories-page-title');
        });
    }
}

运行测试时,用户来自播种机。我可以使用同一帐户登录浏览器。但是当我运行测试时,它失败了。在屏幕截图中,它呈现了登录页面。我的代码中缺少什么,我该如何解决

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)