Skip to content

Commit e1b7bcb

Browse files
authored
Set startOnTick & endOnTick to false for gravity-charts x-axis (#3523)
1 parent 2aa01d3 commit e1b7bcb

File tree

5 files changed

+54
-3
lines changed

5 files changed

+54
-3
lines changed

src/server/modes/charts/plugins/datalens/preparers/area/index.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,11 @@ export function prepareGravityChartArea(args: PrepareFunctionArgs) {
234234
legend.enabled = false;
235235
}
236236

237-
let xAxis: ChartData['xAxis'] = {};
237+
let xAxis: ChartData['xAxis'] = {
238+
startOnTick: false,
239+
endOnTick: false,
240+
};
241+
238242
if (isCategoriesXAxis) {
239243
xAxis = {
240244
type: 'category',
@@ -251,6 +255,11 @@ export function prepareGravityChartArea(args: PrepareFunctionArgs) {
251255

252256
if (isNumberField(xField)) {
253257
xAxis.type = xPlaceholder?.settings?.type === 'logarithmic' ? 'logarithmic' : 'linear';
258+
259+
if (xAxis.type === 'logarithmic') {
260+
xAxis.startOnTick = true;
261+
xAxis.endOnTick = true;
262+
}
254263
}
255264
}
256265

src/server/modes/charts/plugins/datalens/preparers/bar-x/gravity-charts.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,11 @@ export function prepareGravityChartBarX(args: PrepareFunctionArgs) {
290290
}
291291
}
292292

293-
let xAxis: ChartData['xAxis'] = {};
293+
let xAxis: ChartData['xAxis'] = {
294+
startOnTick: false,
295+
endOnTick: false,
296+
};
297+
294298
if (isCategoriesXAxis && xCategories?.length) {
295299
xAxis = {
296300
type: 'category',
@@ -313,6 +317,11 @@ export function prepareGravityChartBarX(args: PrepareFunctionArgs) {
313317

314318
if (isNumberField(xField)) {
315319
xAxis.type = xPlaceholder?.settings?.type === 'logarithmic' ? 'logarithmic' : 'linear';
320+
321+
if (xAxis.type === 'logarithmic') {
322+
xAxis.startOnTick = true;
323+
xAxis.endOnTick = true;
324+
}
316325
}
317326

318327
const xAxisLabelNumberFormat = xPlaceholder

src/server/modes/charts/plugins/datalens/preparers/line/gravity-charts.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,11 @@ export function prepareGravityChartLine(args: PrepareFunctionArgs) {
226226
const shouldUseHtmlForLegend = [colorItem, shapeItem].some(isHtmlField);
227227
const legend: ChartData['legend'] = {html: shouldUseHtmlForLegend};
228228

229-
let xAxis: ChartData['xAxis'] = {};
229+
let xAxis: ChartData['xAxis'] = {
230+
startOnTick: false,
231+
endOnTick: false,
232+
};
233+
230234
if (isCategoriesXAxis) {
231235
xAxis = {
232236
type: 'category',
@@ -243,6 +247,11 @@ export function prepareGravityChartLine(args: PrepareFunctionArgs) {
243247

244248
if (isNumberField(xField)) {
245249
xAxis.type = xPlaceholder?.settings?.type === 'logarithmic' ? 'logarithmic' : 'linear';
250+
251+
if (xAxis.type === 'logarithmic') {
252+
xAxis.startOnTick = true;
253+
xAxis.endOnTick = true;
254+
}
246255
}
247256
}
248257

Loading

tests/opensource-suites/wizard/visualizations/line/axis.test.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,5 +102,29 @@ datalensTest.describe('Wizard', () => {
102102
await expect(previewLoader).not.toBeVisible();
103103
await expect(preview).toHaveScreenshot();
104104
});
105+
106+
datalensTest('Chart starts and ends on data points @screenshot', async ({page}) => {
107+
const wizardPage = new WizardPage({page});
108+
const chartContainer = page.locator(slct(WizardPageQa.SectionPreview));
109+
const chart = chartContainer.locator('.chartkit-graph,.gcharts-chart');
110+
const previewLoader = chartContainer.locator(slct(ChartKitQa.Loader));
111+
await wizardPage.createNewFieldWithFormula('postalCodeInt', `int([postal_code])`);
112+
await wizardPage.sectionVisualization.addFieldByClick(
113+
PlaceholderName.X,
114+
'postalCodeInt',
115+
);
116+
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Y, 'salesSum');
117+
await wizardPage.sectionVisualization.addFieldByClick(
118+
PlaceholderName.Filters,
119+
'Order_date',
120+
);
121+
await wizardPage.filterEditor.selectRangeDate(['01.01.2018', '10.01.2018']);
122+
await wizardPage.filterEditor.apply();
123+
await expect(previewLoader).not.toBeVisible();
124+
// // Put the mouse away so that the presence of hover elements does not interfere with taking screenshots
125+
await page.mouse.move(-1, -1);
126+
await expect(chart).toBeVisible();
127+
await expect(chartContainer).toHaveScreenshot();
128+
});
105129
});
106130
});

0 commit comments

Comments
 (0)