Skip to content

Commit

Permalink
fix: set the label value to ElementType
Browse files Browse the repository at this point in the history
  • Loading branch information
simonguo committed Jan 16, 2024
1 parent 24d67a1 commit 2605df2
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 8 deletions.
13 changes: 8 additions & 5 deletions src/TagPicker/test/TagPickerSpec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@ import TagPicker from '../index';
import Button from '../../Button';
import { PickerHandle } from '../../Picker';

const data = mockGroupData(['Eugenia', 'Kariane', 'Louisa'], { role: 'Master' });
const data = mockGroupData(['Eugenia', 'Kariane', 'Louisa'], {
role: 'Master',
labelElementType: React.Fragment
});

describe('TagPicker', () => {
testStandardProps(<TagPicker data={data} />, {
Expand Down Expand Up @@ -58,10 +61,10 @@ describe('TagPicker', () => {
});

it('Should not clean selected value', () => {
render(<TagPicker defaultOpen data={data} value={['Eugenia']} />);
render(<TagPicker data={data} value={['Eugenia']} />);

fireEvent.click(screen.getByRole('button', { name: /clear/i }));
expect(screen.getByText('Eugenia', { selector: '.rs-tag-text' })).to.exist;
expect(screen.getByRole('option', { name: 'Eugenia' })).to.exist;
});

it('Should output a TagPicker', () => {
Expand All @@ -80,15 +83,15 @@ describe('TagPicker', () => {
const value = 'Louisa';
render(<TagPicker defaultOpen data={data} value={[value]} />);

expect(screen.getByText(value, { selector: '.rs-tag-text' })).to.exist;
expect(screen.queryAllByRole('option', { name: value })).to.have.lengthOf(2);
expect(screen.getByRole('option', { name: value, selected: true })).to.exist;
});

it('Should active item by `defaultValue`', () => {
const value = 'Louisa';
render(<TagPicker defaultOpen data={data} defaultValue={[value]} />);

expect(screen.getByText(value, { selector: '.rs-tag-text' })).to.exist;
expect(screen.queryAllByRole('option', { name: value })).to.have.lengthOf(2);
expect(screen.getByRole('option', { name: value, selected: true })).to.exist;
expect(screen.getByRole('button', { name: /clear/i })).to.exist;
});
Expand Down
9 changes: 6 additions & 3 deletions test/mocks/data-mock.ts → test/mocks/data-mock.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import React from 'react';
/**
* Mock tree data
* @example
Expand Down Expand Up @@ -37,13 +38,15 @@ export function mockTreeData(
return items;
}

export function mockGroupData(data, appendInfo) {
export function mockGroupData(data, options) {
const items: any[] = [];
const { labelElementType: Label = 'span', ...rest } = options || {};

data.forEach(item => {
items.push({
label: item,
label: <Label>{item}</Label>,
value: item,
...appendInfo
...rest
});
});
return items;
Expand Down

0 comments on commit 2605df2

Please sign in to comment.