From 618f28dabd84ed7e1e1f5a4434cf5798e6fb48f2 Mon Sep 17 00:00:00 2001 From: Andrew Kostka Date: Tue, 13 May 2025 14:15:45 +0000 Subject: [PATCH] Add tests for profile data in wiki details route --- tests/Routes/Wiki/DetailsTest.php | 38 +++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tests/Routes/Wiki/DetailsTest.php b/tests/Routes/Wiki/DetailsTest.php index 697899bc1..06b6a907c 100644 --- a/tests/Routes/Wiki/DetailsTest.php +++ b/tests/Routes/Wiki/DetailsTest.php @@ -10,6 +10,7 @@ use App\WikiSetting; use App\User; use App\WikiManager; +use App\WikiProfile; class DetailsTest extends TestCase { @@ -59,4 +60,41 @@ public function testSkipsNonPublicSettings() $this->assertEquals('wwUseQuestyCaptcha', $publicSettings[0]['name']); $this->assertEquals(1, $publicSettings[0]['value']); } + + public function testWikiProfile() + { + $wiki = Wiki::factory()->create(); + $user = User::factory()->create(['verified' => true]); + WikiManager::factory()->create(['wiki_id' => $wiki->id, 'user_id' => $user->id]); + + $versionA = WikiProfile::create([ + 'wiki_id' => $wiki->id, + 'audience' => 'wide', + 'temporality' => 'temporary', + 'purpose' => 'data_hub' + ])->refresh()->toArray(); + + $response = $this->actingAs($user, 'api') + ->postJson($this->route, ['wiki' => $wiki->id]) + ->assertStatus(200); + + $profile = data_get($response->json(), 'data.wiki_latest_profile', []); + $this->assertNotEmpty($profile); + $this->assertEquals($versionA, $profile); + + $versionB = WikiProfile::create([ + 'wiki_id' => $wiki->id, + 'audience' => 'wide', + 'temporality' => 'permanent', + 'purpose' => 'data_hub' + ])->refresh()->toArray(); + + $response = $this->actingAs($user, 'api') + ->postJson($this->route, ['wiki' => $wiki->id]) + ->assertStatus(200); + + $profile = data_get($response->json(), 'data.wiki_latest_profile', []); + $this->assertNotEmpty($profile); + $this->assertEquals($versionB, $profile); + } }