Josh Kelley 809fc46d4b
Pass unknown (non-ECharts) props through to the div element (#602)
* Pass unknown props through to the div element

This fits common React conventions and allows using attributes such as `data-testid` for testing purposes.

Related changes:

- Adding HTMLAttributes<HTMLDivElement> to EChartsReactProps meant that EChartsReactProps was no longer usable as a `Record<string, unknown>`, which caused problems for the `pick` function.  (See https://stackoverflow.com/q/65799316/25507.). I updated the pick function to use a generic type instead.
- Add [ignoreRestSiblings](https://eslint.org/docs/latest/rules/no-unused-vars#ignorerestsiblings) so ESLint is happy with the new code.
- Fix an unrelated Prettier warning in `componentDidUpdate`.

There's a slight risk of backwards-incompatible changes in this release: IF the user previously passed unknown props (e.g., due to typos or mistaken props spreads), they were ignored, but they're now passed through to the div element.

Fixes #546

* Update tests

* Code review
2025-11-06 09:51:52 +08:00

12 lines
338 B
TypeScript

import { pick } from '../../src/helper/pick';
describe('pick', () => {
it('pick', () => {
const obj: { a: number; b?: number } = { a: 1 };
expect(pick(obj, [])).toEqual({});
expect(pick(obj, ['b'])).toEqual({});
expect(pick(obj, ['a'])).toEqual({ a: 1 });
expect(pick(obj, ['a', 'b'])).toEqual({ a: 1 });
});
});