<?php

namespace Tests\Api\v1\Controllers;

use Illuminate\Http\UploadedFile;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Tests\FeatureTestCase;

use App\Models\TwoFAccount;

/**
 * @covers \App\Api\v1\Controllers\IconController
 */
class IconControllerTest extends FeatureTestCase
{

    use WithoutMiddleware;


    /**
     * @test
     */
    public function test_upload_icon_returns_filename()
    {
        $file = UploadedFile::fake()->image('testIcon.jpg');

        $response = $this->json('POST', '/api/v1/icons', [
                'icon' => $file,
            ])
            ->assertCreated()
            ->assertJsonStructure([
                'filename'
            ]);
    }


    /**
     * @test
     */
    public function test_upload_with_invalid_data_returns_validation_error()
    {
        $response = $this->json('POST', '/api/v1/icons', [
                'icon' => null,
            ])
            ->assertStatus(422);
    }


    /**
     * @test
     */
    public function test_delete_icon_returns_success()
    {
        $response = $this->json('DELETE', '/api/v1/icons/testIcon.jpg')
            ->assertNoContent(204);
    }


    /**
     * @test
     */
    public function test_delete_invalid_icon_returns_success()
    {
        $response = $this->json('DELETE', '/api/v1/icons/null')
            ->assertNoContent(204);

    }

}