Apply recent hour pattern to client details
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m36s
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m36s
This commit is contained in:
@@ -908,6 +908,14 @@ test('getClientDetailsAnalytics resolves legacy name tokens to the canonical pho
|
||||
};
|
||||
}
|
||||
|
||||
if (sql.includes('created_at >= NOW()')) {
|
||||
return {
|
||||
rows: [
|
||||
{ hour: 9, order_count: 1 }
|
||||
]
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
rows: [
|
||||
{
|
||||
@@ -941,7 +949,7 @@ test('getClientDetailsAnalytics resolves legacy name tokens to the canonical pho
|
||||
try {
|
||||
const details = await getClientDetailsAnalytics(clientToken, { start: '2026-06-01', end: '2026-06-15' });
|
||||
|
||||
assert.equal(calls.length, 5);
|
||||
assert.equal(calls.length, 6);
|
||||
assert.match(calls[0].sql, /FROM client_identity_tokens/);
|
||||
assert.deepEqual(calls[0].params, [clientToken]);
|
||||
assert.match(calls[1].sql, /SELECT customer_key/);
|
||||
@@ -952,10 +960,12 @@ test('getClientDetailsAnalytics resolves legacy name tokens to the canonical pho
|
||||
assert.match(calls[3].sql, /data_pedido_date >= \$2::date/);
|
||||
assert.match(calls[3].sql, /data_pedido_date <= \$3::date/);
|
||||
assert.deepEqual(calls[3].params, ['(16) 99999-9999', '2026-06-01', '2026-06-15']);
|
||||
assert.match(calls[4].sql, /created_at/);
|
||||
assert.match(calls[4].sql, /data_pedido_date IS NOT NULL/);
|
||||
assert.doesNotMatch(calls[4].sql, /data_pedido_date >=/);
|
||||
assert.doesNotMatch(calls[4].sql, /data_pedido_date <=/);
|
||||
assert.deepEqual(calls[4].params, ['(16) 99999-9999']);
|
||||
assert.match(calls[5].sql, /created_at >= NOW\(\) - \(\$2::int \* INTERVAL '1 day'\)/);
|
||||
assert.deepEqual(calls[5].params, ['(16) 99999-9999', 60]);
|
||||
assert.equal(details.clientName, 'Cliente Sem Fone');
|
||||
assert.equal(details.clientPhone, '(16) 99999-9999');
|
||||
assert.equal(details.allTimeOrderCount, 3);
|
||||
@@ -964,6 +974,9 @@ test('getClientDetailsAnalytics resolves legacy name tokens to the canonical pho
|
||||
assert.equal(details.periodOrderCount, 1);
|
||||
assert.equal(details.periodAverageTicket, 25);
|
||||
assert.deepEqual(details.chartData, [{ date: '10-06-2026', value: 25 }]);
|
||||
assert.equal(details.purchaseWeekdayRangeLabel, 'Todo período');
|
||||
assert.equal(details.purchaseHourRangeLabel, 'Últimos 60 dias');
|
||||
assert.deepEqual(details.purchaseHours[9], { label: '09h', value: 1 });
|
||||
assert.equal(details.groupedOrders.length, 1);
|
||||
assert.equal(details.groupedOrders[0].orderTotal, 25);
|
||||
assert.equal(details.groupedOrders[0].items.length, 2);
|
||||
@@ -995,6 +1008,15 @@ test('getClientDetailsAnalytics groups single-day spend chart by hour', async ()
|
||||
};
|
||||
}
|
||||
|
||||
if (sql.includes('created_at >= NOW()')) {
|
||||
return {
|
||||
rows: [
|
||||
{ hour: 9, order_count: 1 },
|
||||
{ hour: 18, order_count: 1 }
|
||||
]
|
||||
};
|
||||
}
|
||||
|
||||
assert.deepEqual(params[0], '(16) 99999-9999');
|
||||
return {
|
||||
rows: [
|
||||
@@ -1034,6 +1056,10 @@ test('getClientDetailsAnalytics groups single-day spend chart by hour', async ()
|
||||
assert.equal(details.chartData.length, 24);
|
||||
assert.deepEqual(details.chartData[9], { date: '09h', value: 20 });
|
||||
assert.deepEqual(details.chartData[18], { date: '18h', value: 30 });
|
||||
assert.deepEqual(details.purchaseHours[9], { label: '09h', value: 1 });
|
||||
assert.deepEqual(details.purchaseHours[18], { label: '18h', value: 1 });
|
||||
assert.equal(details.purchaseWeekdayRangeLabel, 'Todo período');
|
||||
assert.equal(details.purchaseHourRangeLabel, 'Últimos 60 dias');
|
||||
assert.equal(details.periodSpent, 50);
|
||||
} finally {
|
||||
pool.query = originalQuery;
|
||||
|
||||
Reference in New Issue
Block a user