fix texture is missing from uploader's closet

when set to private
This commit is contained in:
Pig Fang 2020-08-24 09:50:58 +08:00
parent 9916ad1344
commit f665c7fe31
No known key found for this signature in database
GPG Key ID: A8198F548DADA9E2
2 changed files with 12 additions and 2 deletions

View File

@ -15,7 +15,10 @@ class CleanUpCloset
return;
}
$likers = $texture->likers()->get();
$likers = $texture
->likers()
->where('user_uid', '!=', $texture->uploader)
->get();
$likers->each(function (User $user) use ($texture) {
$user->closet()->detach($texture->tid);
if (option('return_score')) {

View File

@ -26,16 +26,23 @@ class CleanUpClosetTest extends TestCase
public function testPrivateTexture()
{
option(['return_score' => true]);
$texture = factory(Texture::class)->create(['public' => false]);
$uploader = factory(User::class)->create();
$texture = factory(Texture::class)->create([
'uploader' => $uploader->uid,
'public' => false,
]);
$uploader->closet()->attach($texture->tid, ['item_name' => '']);
$user = factory(User::class)->create(['score' => 0]);
$user->closet()->attach($texture->tid, ['item_name' => '']);
$replicated = $texture->replicate();
event('texture.privacy.updated', [$texture]);
$uploader->refresh();
$user->refresh();
$this->assertEquals($replicated->likes - 1, $texture->fresh()->likes);
$this->assertEquals((int) option('score_per_closet_item'), $user->score);
$this->assertNull($user->closet()->find($texture->tid));
$this->assertEquals(1, $uploader->closet()->count());
}
public function testDeletedTexture()