Skip to content

Commit 004ab08

Browse files
committed
Upvote test, will delete previous upvote
1 parent 47bd998 commit 004ab08

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

tests/Feature/UpvoteTest.php

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,42 @@ public function test_multiple_upvotes()
149149
$this->assertEquals(0, $resource->upvoteSummary->downvotes); // No downvotes
150150
}
151151

152+
/**
153+
* Test two upvotes from the same user is actually deleting the original vote.
154+
*/
155+
public function test_same_user_double_upvotes()
156+
{
157+
$user = User::factory()->create();
158+
$resource = ComputerScienceResource::factory()->create();
159+
160+
// Upvote twice
161+
$this->actingAs($user);
162+
$this->postJson(route('upvote', ['type' => 'resource', 'id' => $resource->id]));
163+
$this->postJson(route('upvote', ['type' => 'resource', 'id' => $resource->id]));
164+
165+
// Check if the votes have been deleted correctly
166+
$this->assertEquals(0, $resource->upvoteSummary->upvotes); // No upvotes
167+
$this->assertEquals(0, $resource->upvoteSummary->downvotes); // No downvotes
168+
}
169+
170+
/**
171+
* Test two upvotes from the same user is actually deleting the original vote.
172+
*/
173+
public function test_same_user_double_downvotes()
174+
{
175+
$user = User::factory()->create();
176+
$resource = ComputerScienceResource::factory()->create();
177+
178+
// Upvote twice
179+
$this->actingAs($user);
180+
$this->postJson(route('downvote', ['type' => 'resource', 'id' => $resource->id]));
181+
$this->postJson(route('downvote', ['type' => 'resource', 'id' => $resource->id]));
182+
183+
// Check if the votes have been deleted correctly
184+
$this->assertEquals(0, $resource->upvoteSummary->upvotes); // No upvotes
185+
$this->assertEquals(0, $resource->upvoteSummary->downvotes); // No downvotes
186+
}
187+
152188
/**
153189
* Test upvote after downvote makes the score 0.
154190
*/

0 commit comments

Comments
 (0)