Skip to content

Commit

Permalink
create a foundation for testing link statistics data
Browse files Browse the repository at this point in the history
  • Loading branch information
realodix committed Feb 7, 2025
1 parent 28b1d29 commit 8623fbe
Showing 1 changed file with 159 additions and 0 deletions.
159 changes: 159 additions & 0 deletions tests/Feature/AuthPage/AboutPageTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,75 @@

namespace Tests\Feature\AuthPage;

use App\Models\Url;
use App\Models\User;
use App\Models\Visit;
use App\Services\KeyGeneratorService;
use PHPUnit\Framework\Attributes as PHPUnit;
use Tests\TestCase;

#[PHPUnit\Group('auth-page')]
class AboutPageTest extends TestCase
{
private Url $url;

private User $user;

private Visit $visit;

private KeyGeneratorService $keyGenerator;

const USER_COUNT = 1;
const USER_GUEST_COUNT = 1;

// ..
const URL_COUNT = 2;
const USER_URL_COUNT = 1;
const USER_LINK_VISIT_COUNT = 2;
const GUEST_URL_COUNT = 1;
const GUEST_LINK_VISIT_COUNT = 1;

// ..
const VISIT_COUNT = 3;
const USER_VISIT_COUNT = 1;
const GUEST_VISIT_COUNT = 2;
const UNIQUE_GUEST_VISIT_COUNT = 1;

// ..
const KEYWORD_COUNT = 1;

protected function setUp(): void
{
parent::setUp();

$this->url = new Url;
$this->user = new User;
$this->visit = new Visit;
$this->keyGenerator = app(KeyGeneratorService::class);

// URL
$userLink = Url::factory()->create();
$guestLink = Url::factory()->create([
'user_id' => Url::GUEST_ID,
'keyword' => 'verylonngggggkeyword',
]);

// Visit
Visit::factory()->for($userLink)->create();
Visit::factory()
->for($userLink)
->create(['visitor_id' => 'ff6db461ccba3fa6']);
Visit::factory()
->for($guestLink)
->create(['visitor_id' => 'ff6db461ccba3fa6']);
}

/*
|--------------------------------------------------------------------------
| Access Policy
|--------------------------------------------------------------------------
*/

/**
* Test that an admin user can access the about page.
*
Expand Down Expand Up @@ -40,4 +103,100 @@ public function auNormalUserCantAccessThisPage(): void
->get(route('dboard.about'));
$response->assertForbidden();
}

/*
|--------------------------------------------------------------------------
| User
|--------------------------------------------------------------------------
*/

#[PHPUnit\Test]
public function userCount(): void
{
$this->assertSame(self::USER_COUNT, $this->user->count());
}

#[PHPUnit\Test]
public function guestUserCount(): void
{
$this->assertSame(self::USER_GUEST_COUNT, $this->user->totalGuestUsers());
}

/*
|--------------------------------------------------------------------------
| Link
|--------------------------------------------------------------------------
*/

#[PHPUnit\Test]
public function urlCount(): void
{
$this->assertSame(self::URL_COUNT, $this->url->count());
}

#[PHPUnit\Test]
public function userUrlCount(): void
{
$this->assertSame(self::USER_URL_COUNT, $this->url->userUrlCount());
}

#[PHPUnit\Test]
public function guestUserUrlCount(): void
{
$this->assertSame(self::GUEST_URL_COUNT, $this->url->guestUserUrlCount());
}

/*
|--------------------------------------------------------------------------
| Visit
|--------------------------------------------------------------------------
*/

#[PHPUnit\Test]
public function visitCount(): void
{
$this->assertSame(self::VISIT_COUNT, $this->visit->count());
}

#[PHPUnit\Test]
public function userLinkVisitCount(): void
{
$this->assertSame(self::USER_LINK_VISIT_COUNT, $this->visit->userLinkVisitCount());
}

#[PHPUnit\Test]
public function guestUserLinkVisitCount(): void
{
$this->assertSame(self::GUEST_LINK_VISIT_COUNT, $this->visit->guestUserLinkVisitCount());
}

#[PHPUnit\Test]
public function userVisitCount(): void
{
$this->assertSame(self::USER_VISIT_COUNT, $this->visit->userVisitCount());
}

#[PHPUnit\Test]
public function guestVisitCount(): void
{
$this->assertSame(self::GUEST_VISIT_COUNT, $this->visit->guestVisitCount());
}

#[PHPUnit\Test]
public function uniqueGuestVisitCount(): void
{
$this->assertSame(self::UNIQUE_GUEST_VISIT_COUNT, $this->visit->uniqueGuestVisitCount());
}

/*
|--------------------------------------------------------------------------
| Random String
|--------------------------------------------------------------------------
*/

#[PHPUnit\Test]
public function keywordCount(): void
{
$this->assertSame(self::KEYWORD_COUNT, $this->keyGenerator->keywordCount());
}
}

0 comments on commit 8623fbe

Please sign in to comment.