<?php

use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use App\Configuracion;

class ExpirationTest extends TestCase
{
    use RefreshDatabase;

    /**
     * When limit_date is in the past, login and register pages should show timeout.
     */
    public function testLoginAndRegisterAreHiddenWhenExpired()
    {
        Configuracion::create(['llave' => 'limit_date', 'valor' => now()->subDays(1)->toDateTimeString()]);

        $loginResponse = $this->get('auth/login');
        $loginResponse->assertStatus(200);
        $loginResponse->assertViewIs('auth.timeout');
        $loginResponse->assertSee('Periodo cerrado');

        $regResponse = $this->get('auth/register');
        $regResponse->assertStatus(200);
        $regResponse->assertViewIs('auth.timeout');
        $regResponse->assertSee('Periodo cerrado');
    }

    /**
     * When limit_date is in the future, login/register should be available.
     */
    public function testLoginAndRegisterAvailableWhenNotExpired()
    {
        Configuracion::create(['llave' => 'limit_date', 'valor' => now()->addDays(1)->toDateTimeString()]);

        $this->get('auth/login')->assertViewIs('auth.login');
        $this->get('auth/register')->assertViewIs('auth.register');
    }
}
