<?php

namespace Tests\Feature;

use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker;

use Tests\TestCase;

class DataCleaningControllerTest extends TestCase
{
    public function test_dclCompleto()
    {
        // Desactivar middleware para la prueba
        $this->withoutMiddleware();

        /* No se usa ya que al ejecutar, el entorno de testing no va a necesitar la informacion del cliente.
            esta informacion la utiliza para poder ejecutar el store
        
        $sessionData = [
            'usuario' => (object) [
                'cliente' => ['client_id' => '123'],
                'user_id' => '456'
            ]
        ]; */

        // Datos para el POST request
        $data = [
            'country_code' => 'AR',
            'nombre_apellido_persona' => 'Juan Pérez',
            'identificacion' => '20953961335',
            'identificador' => 'CUIT',
            'tarea' => '12345',
            'tipo_persona' => 'M',
            'sexo' => 'M',
            'es_pasaporte' => 0
        ];

        // Realizar la solicitud POST al endpoint
        $url = 'http://' . env('API_ROUTE') . '/api/dcl/mixto';
        /* $response = $this->withSession($sessionData)
            ->postJson($url, $data); */

        $response = $this->postJson($url, $data);

        // Verificar que la respuesta tenga un status 200 (éxito)
        $response->assertStatus(200);

        // Verificar que la respuesta contenga una estructura JSON específica
        $response->assertJsonStructure([
            'error',
            'mensaje',
            'id_informe'
        ]);

        // Verificar que los valores dentro de la respuesta sean los esperados
        $response->assertJson([
            'error' => '0',
            'mensaje' => 'El informe de data cleaning fue creado con exito.'
        ]);
    }
}
