更新
This commit is contained in:
@@ -21,26 +21,25 @@ conversionFanDetailExpect(is_string($conversionSource), 'Unable to read Conversi
|
||||
$buildDetailRows = (new ReflectionClass(ConversionLogic::class))->getMethod('buildFanDetailRows');
|
||||
$buildDetailRows->setAccessible(true);
|
||||
$detailRows = $buildDetailRows->invoke(null, [
|
||||
['user_id' => 'staff-a', 'external_userid' => 'readded', 'add_time' => 100],
|
||||
['user_id' => 'staff-a', 'external_userid' => 'readded', 'add_time' => 200],
|
||||
['user_id' => 'staff-b', 'external_userid' => 'deleted', 'add_time' => 300],
|
||||
], [
|
||||
['user_id' => 'staff-a', 'external_userid' => 'readded', 'add_time' => 200],
|
||||
['add_event_id' => 10, 'user_id' => 'staff-a', 'external_userid' => 'shared', 'add_time' => 100, 'is_deleted' => false],
|
||||
['add_event_id' => 11, 'user_id' => 'staff-a', 'external_userid' => 'shared', 'add_time' => 200, 'is_deleted' => false],
|
||||
['add_event_id' => 12, 'user_id' => 'staff-b', 'external_userid' => 'shared', 'add_time' => 300, 'is_deleted' => true],
|
||||
]);
|
||||
conversionFanDetailExpect(
|
||||
count($detailRows) === 2
|
||||
&& (int) ($detailRows[0]['add_time'] ?? 0) === 100
|
||||
&& empty($detailRows[0]['is_deleted'])
|
||||
&& (string) ($detailRows[1]['user_id'] ?? '') === 'staff-b'
|
||||
&& !empty($detailRows[1]['is_deleted']),
|
||||
'Delete/re-add details must retain the first counted add time and final deletion state'
|
||||
'Details must deduplicate the same employee/customer while retaining the same customer under another employee'
|
||||
);
|
||||
conversionFanDetailExpect(
|
||||
str_contains($conversionSource, 'self::loadFanDetailRows($startTimestamp, $endTimestamp, $mediaChannel, $adminIds)')
|
||||
&& str_contains($conversionSource, 'MIN(e.event_time) AS add_time')
|
||||
&& str_contains($conversionSource, 'e.id AS add_event_id')
|
||||
&& str_contains($conversionSource, "->where('e.event_time', 'between', [\$startTimestamp, \$endTimestamp])")
|
||||
&& str_contains($conversionSource, 'EXISTS (SELECT 1 FROM `')
|
||||
&& str_contains($conversionSource, 'MAX(event_time) AS delete_time'),
|
||||
'Aggregate and detail results must share the same distinct fan-pair loader and expose event times'
|
||||
'Aggregate and detail results must share the same employee/customer loader and expose event times'
|
||||
);
|
||||
conversionFanDetailExpect(
|
||||
str_contains($conversionSource, "'external_userid' => \$externalUserId")
|
||||
|
||||
Reference in New Issue
Block a user