<?php

namespace App\Tests;

use Symfony\Bundle\FrameworkBundle\Client;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class TimeLogControllerTest extends WebTestCase
{
    public function testSomething()
    {
        $container = self::$kernel->getContainer();
//        $JWTManager = $container->get('lexik_jwt_authentication.jwt_manager');
//        $userService = $container->get('App\Service\UserService');
//        $user = $userService->getAllUsers()[0];
//        $token = $JWTManager->create($user);
        $campaignService = $container->get('App\Service\CampaignService');
        $crawler = $this->client->request('GET', '/api/timelog/schema');

//        dd($crawler->first());
        $response = $this->client->getResponse();

        dd($response);
        $this->assertResponse($response, 'hello_world');
    }

    protected function setUp(): void
    {
        parent::setUp();
        self::bootKernel();
        $this->setUpDatabase();
        $this->loadFixturesFromFile('users.yml');
        $this->client = $this->createAuthenticatedClient('user1@test.com', 'asdf');
//        dd($this->client->getServerParameter('HTTP_Authorization'));
    }

    /**
     * Create a client with a default Authorization header.
     *
     * @param string $username
     * @param string $password
     *
     * @return Client
     */
    protected function createAuthenticatedClient()
    {
        $container = self::$kernel->getContainer();
        $JWTManager = $container->get('lexik_jwt_authentication.jwt_manager');
        $userService = $container->get('App\Service\UserService');
        $user = $userService->getAllUsers()[0];
        $token = $JWTManager->create($user);
//        dd($token);
        $client = static::createClient();
        $client->setServerParameter('HTTP_Authorization', sprintf('Bearer %s', $token));

        return $client;
    }
}
