Skip to content

Commit

Permalink
feat: testid 支持通过环境变量控制是否开启
Browse files Browse the repository at this point in the history
  • Loading branch information
yupeng12 committed Mar 8, 2024
1 parent 28ee659 commit 0c8cfa5
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 13 deletions.
2 changes: 2 additions & 0 deletions examples/components/SchemaRender.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,8 @@ export default function (schema, schemaProps, showCode, envOverrides) {
};
});
},
// 是否开启测试 testid
// enableTestid: true,
...envOverrides
};

Expand Down
10 changes: 5 additions & 5 deletions packages/amis-core/src/SchemaRenderer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -478,11 +478,11 @@ export class SchemaRenderer extends React.Component<SchemaRendererProps, any> {

// 优先使用组件自己的testid或者id,这个解决不了table行内的一些子元素
// 每一行都会出现这个testid的元素,只在测试工具中直接使用nth拿序号
if (props.testid || props.id || props.testIdBuilder == null) {
if (!(props.testIdBuilder instanceof TestIdBuilder)) {
props.testIdBuilder = new TestIdBuilder(
rest.env.enableTestid ? props.testid || props.id : null
);
if (rest.env.enableTestid) {
if (props.testid || props.id || props.testIdBuilder == null) {
if (!(props.testIdBuilder instanceof TestIdBuilder)) {
props.testIdBuilder = new TestIdBuilder(props.testid || props.id);
}
}
}

Expand Down
2 changes: 1 addition & 1 deletion packages/amis/src/renderers/Form/ButtonGroupSelect.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export interface ButtonGroupProps
| 'btnClassName'
> {
options: Array<Option>;
testIdBuilder: TestIdBuilder;
testIdBuilder?: TestIdBuilder;
}

export default class ButtonGroupControl extends React.Component<
Expand Down
8 changes: 5 additions & 3 deletions packages/amis/src/renderers/Table/AutoFilterForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,12 @@ export function AutoFilterForm({
type: 'input-text',
name: column.name,
label: column.label,
testIdBuilder: testIdBuilder.getChild(column.name)
testIdBuilder: testIdBuilder?.getChild(column.name)
}
: {
type: 'input-text',
name: column.name,
testIdBuilder: testIdBuilder.getChild(column.name),
testIdBuilder: testIdBuilder?.getChild(column.name),
...column.searchable
}),
name: column.searchable?.name ?? column.name,
Expand Down Expand Up @@ -130,7 +130,9 @@ export function AutoFilterForm({
inputClassName: cx('Table-searchableForm-checkbox-inner'),
name: `__whatever_name`,
option: column.searchable?.label ?? column.label,
testIdBuilder: moreTestIdBuilder?.getChild(column.name),
testIdBuilder: moreTestIdBuilder?.getChild(
column.name + ''
),
badge: {
offset: [-10, 5],
visibleOn: `${
Expand Down
2 changes: 1 addition & 1 deletion packages/amis/src/renderers/Table/TableContent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export interface TableContentProps extends LocaleProps {
className?: string;
tableClassName?: string;
classnames: ClassNamesFn;
testIdBuilder: TestIdBuilder;
testIdBuilder?: TestIdBuilder;
columns: Array<IColumn>;
columnsGroup: Array<{
label: string;
Expand Down
6 changes: 3 additions & 3 deletions packages/amis/src/renderers/Table/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1697,7 +1697,7 @@ export default class Table extends React.Component<TableProps, object> {
onSearchableFromSubmit={onSearchableFromSubmit}
onSearchableFromInit={onSearchableFromInit}
popOverContainer={this.getPopOverContainer}
testIdBuilder={testIdBuilder.getChild('filter')}
testIdBuilder={testIdBuilder?.getChild('filter')}
/>
);
}
Expand Down Expand Up @@ -2122,7 +2122,7 @@ export default class Table extends React.Component<TableProps, object> {
quickEditFormRef={this.subFormRef}
onImageEnlarge={this.handleImageEnlarge}
translate={translate}
testIdBuilder={testIdBuilder.getChild(
testIdBuilder={testIdBuilder?.getChild(
`cell-${props.rowPath}-${column.index}`
)}
/>
Expand Down Expand Up @@ -2832,7 +2832,7 @@ export default class Table extends React.Component<TableProps, object> {
'Table--autoFillHeight': autoFillHeight
})}
style={store.buildStyles(style)}
{...testIdBuilder.getTestId()}
{...testIdBuilder?.getTestId()}
>
{autoGenerateFilter ? this.renderAutoFilterForm() : null}
{this.renderAffixHeader(tableClassName)}
Expand Down

0 comments on commit 0c8cfa5

Please sign in to comment.