Laravel黄昏日志中为错误的用户

问题描述 投票:0回答:2

我有一个相当简单的浏览器测试(laravel黄昏)。测试失败,因为没有实际的断言由于缺少权限,但。

与我登录用户(loginAs)具有这些权限。原来,在最后,虽然我在登录以testuser的实际验证的用户是其他用户。

看来,被认证的用户的loginAs()和访问控制器功能之间切换。但在我看来,这两个步骤应该接踵而来。

我给我的最好的说明情况,如果事情还不清楚,请要求澄清。

测试

/**
* @throws \Throwable
*/
public function test_something()
{
   $this->browse(function (Browser $browser) {
   $browser->loginAs($this->testUser) //made a breakpoint here and it showed the correct user
      ->visit(new IndexPage())
      //some asserts
   });
}   

相应的控制器

public function index()
{
    dd(Auth::user()->username); //shows not the name of testUser
    if (! Auth::user()->can('index'))
        return abort(403, "Operation not permitted"); //fails because of wrong user

    //gather data

    return view('index', compact('data'));
}
laravel-5.5 laravel-dusk
2个回答
0
投票

通常我会直接删除这个问题,因为它变成了为某种初学者的错误。但作为一个人“主演的”这个问题,我宁愿回答。 我不能确切地告诉那里的问题的来源,但我清除了所有我能清除(高速缓存),现在的测试变为绿色。


0
投票

我认为这个问题有事情做与黄昏中记录自己的方式。我注意到,试图尽管被称为$browser->loginAs($user)访问当前用户,当我的观察员将总是空。我的解决办法是也呼吁\Auth::login($user)解决了这个问题。

重要的是要记住,运行黄昏测试的PHP程序是从应用程序代码可以导致很多混乱的完全隔离是很重要的。

长期的解决方案可能是放弃黄昏和直接使用的webdriver作为零配置自然的黄昏离开开发商很迷茫的时候出乱子,这就是用的片状的Laravel黄昏什么特别糟糕。

© www.soinside.com 2019 - 2024. All rights reserved.