aminghadersohi commented on code in PR #34759:
URL: https://github.com/apache/superset/pull/34759#discussion_r3357644913
##########
superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/transformProps.test.ts:
##########
@@ -1520,3 +1520,99 @@ test('should assign distinct dash patterns for multiple
time offsets consistentl
// must be different patterns
expect(symbol1).not.toEqual(symbol2);
});
+
+describe('Tooltip with long labels', () => {
+ test('should use axisValue for tooltip when available (richTooltip)', () => {
+ const longLabelData: ChartDataResponseResult[] = [
+ createTestQueryData([
+ {
+ 'This is a very long category name that would normally be
truncated': 100,
+ __timestamp: 599616000000,
+ },
+ {
+ 'Another extremely long category name for testing purposes': 200,
+ __timestamp: 599916000000,
+ },
+ ]),
+ ];
+
+ const chartProps = createTestChartProps({
+ formData: {
+ richTooltip: true,
+ },
+ queriesData: longLabelData,
+ });
+
+ const transformedProps = transformProps(chartProps);
+
+ // Get the tooltip formatter function
+ const tooltipFormatter = (transformedProps.echartOptions as any).tooltip
+ .formatter;
+
+ // Simulate params from ECharts with axisValue containing full label
+ // Use distinct values for axisValue and seriesName to verify axisValue is
used
+ const mockParams = [
+ {
+ axisValue:
+ 'This is a very long category name that would normally be truncated',
+ value: [599616000000, 100],
+ seriesName: 'Some Series Name',
+ },
+ ];
+
+ // Call the formatter and check it uses the full label from axisValue
+ const result = tooltipFormatter(mockParams);
+ expect(result).toContain(
+ 'This is a very long category name that would normally be truncated',
+ );
+ });
+
+ test('should fallback to value when axisValue is not available', () => {
+ const chartProps = createTestChartProps({
+ formData: {
+ richTooltip: true,
+ },
+ });
+
+ const transformedProps = transformProps(chartProps);
+
+ const tooltipFormatter = (transformedProps.echartOptions as any).tooltip
+ .formatter;
+
+ // Simulate params without axisValue
+ const mockParams = [
+ {
+ value: [599616000000, 1],
+ seriesName: 'San Francisco',
+ },
+ ];
+
+ // Should still work with fallback to value
+ const result = tooltipFormatter(mockParams);
+ expect(result).toBeDefined();
+ expect(typeof result).toBe('string');
Review Comment:
These assertions only check that the result is a string — they never verify
the formatted x-value actually appears, so a regression in the fallback path
would still pass. Assert the value is present (as the `axisValue` test does
with `toContain`). Same applies to `should handle item tooltips correctly`
(L1615-1616).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]