<?php

namespace Tests\Browser\Components;

use Laravel\Dusk\Browser;
use Laravel\Dusk\Component as BaseComponent;

use App\Models\Page;

class PageSideMenu extends BaseComponent
{
    /**
     * Get the root selector for the component.
     *
     * @return string
     */
    public function selector()
    {
        return '@page-side-menu';
    }

    /**
     * Assert that the browser page contains the component.
     *
     * @param  Browser  $browser
     * @return void
     */
    public function assert(Browser $browser)
    {
        $browser->assertVisible($this->selector());
    }

    public function loadPage(Browser $browser, Page $page)
    {
        $browser->mouseover('@page-side-menu-header')
            ->waitFor('@page-list-'.$page->id, 30)
            ->pause(500)
            ->within('@page-tree', function ($browser) use ($page) {
                $browser->click('@page-list-'.$page->id);
            })
            ->waitUntilVue('page.id', $page->id);
    }
}
