Skip to content

Commit a3a3eba

Browse files
pmPaulisnolanpro
authored andcommitted
FOUR-33295
1 parent 2ca4684 commit a3a3eba

2 files changed

Lines changed: 33 additions & 1 deletion

File tree

‎ProcessMaker/Repositories/ProcessExecutionRawRepository.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,7 @@ private function mergeGroupMemberUserIdsRaw(array $groupIds, array &$users): voi
485485
$subGroupIds = array_values(array_unique($subGroupIds));
486486
$groupPlaceholders = implode(',', array_fill(0, count($subGroupIds), '?'));
487487
$activeGroups = DB::select(
488-
"SELECT id FROM groups WHERE id IN ($groupPlaceholders) AND status = ?",
488+
"SELECT id FROM `groups` WHERE id IN ($groupPlaceholders) AND status = ?",
489489
array_merge($subGroupIds, ['ACTIVE'])
490490
);
491491
foreach ($activeGroups as $group) {

‎tests/unit/ProcessMaker/Repositories/ProcessExecutionRawRepositoryTest.php‎

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22

33
namespace Tests\Unit\ProcessMaker\Repositories;
44

5+
use ProcessMaker\Models\Group;
6+
use ProcessMaker\Models\GroupMember;
57
use ProcessMaker\Models\ProcessRequest;
8+
use ProcessMaker\Models\User;
69
use ProcessMaker\Repositories\ProcessExecutionRawRepository;
710
use Tests\TestCase;
811

@@ -34,4 +37,33 @@ public function testGetProcessRequestForResponseRawIncludesDataColumn(): void
3437
$this->assertIsArray($hydrated->data);
3538
$this->assertSame('persisted', $hydrated->data['marker']);
3639
}
40+
41+
public function testRawGroupAssignmentResolvesActiveNestedGroups(): void
42+
{
43+
$user = User::factory()->create(['status' => 'ACTIVE']);
44+
$parentGroup = Group::factory()->create(['status' => 'ACTIVE']);
45+
$childGroup = Group::factory()->create(['status' => 'ACTIVE']);
46+
47+
GroupMember::withoutEvents(function () use ($parentGroup, $childGroup, $user): void {
48+
GroupMember::create([
49+
'group_id' => $parentGroup->id,
50+
'member_id' => $childGroup->id,
51+
'member_type' => Group::class,
52+
]);
53+
GroupMember::create([
54+
'group_id' => $childGroup->id,
55+
'member_id' => $user->id,
56+
'member_type' => User::class,
57+
]);
58+
});
59+
60+
$repository = new ProcessExecutionRawRepository();
61+
$method = new \ReflectionMethod($repository, 'mergeGroupMemberUserIdsRaw');
62+
$method->setAccessible(true);
63+
$users = [];
64+
65+
$method->invokeArgs($repository, [[$parentGroup->id], &$users]);
66+
67+
$this->assertSame([$user->id], array_values($users));
68+
}
3769
}

0 commit comments

Comments
 (0)