diff --git a/packages/s2-core/__tests__/bugs/issue-3087-spec.ts b/packages/s2-core/__tests__/bugs/issue-3087-spec.ts new file mode 100644 index 0000000000..01f5a5fa83 --- /dev/null +++ b/packages/s2-core/__tests__/bugs/issue-3087-spec.ts @@ -0,0 +1,59 @@ +/** + * @description spec for issue #3087 + * https://github.com/antvis/S2/issues/3087 + */ +import { TableSheet } from '../../src'; +import { getContainer } from '../util/helpers'; + +const data = Array(100).fill({ + province: 'aaaa'.repeat(100), + city: 'aa', +}); + +describe('Table MaxLines Tests', () => { + test('should render maxLines text correctly after render twice', async () => { + const tableSheet = new TableSheet( + getContainer(), + { + fields: { + columns: ['province', 'city'], + }, + meta: [ + { + field: 'province', + name: '省份', + }, + { + field: 'city', + name: '城市', + }, + ], + data, + }, + { + width: 600, + height: 480, + style: { + colCell: { + maxLines: 3, + wordWrap: true, + textOverflow: 'ellipsis', + }, + dataCell: { + maxLines: 3, + wordWrap: true, + textOverflow: 'ellipsis', + }, + }, + }, + ); + + await tableSheet.render(); + const actualText1 = tableSheet.facet.getDataCells()[0].getActualText(); + + await tableSheet.render(); + const actualText2 = tableSheet.facet.getDataCells()[0].getActualText(); + + expect(actualText1).toEqual(actualText2); + }); +}); diff --git a/packages/s2-core/src/cell/base-cell.ts b/packages/s2-core/src/cell/base-cell.ts index 0d30616d91..587a7eb722 100644 --- a/packages/s2-core/src/cell/base-cell.ts +++ b/packages/s2-core/src/cell/base-cell.ts @@ -856,7 +856,7 @@ export abstract class BaseCell extends Group { const maxLines = Math.max( 1, - Math.floor((displayHeight - padding) / lineHeight), + Math.round((displayHeight - padding) / lineHeight), ); return maxLines;