mirror of
https://github.com/apache/superset.git
synced 2026-05-31 13:19:23 +00:00
feat(sqllab): TRINO_EXPAND_ROWS: expand columns from ROWs (#25809)
This commit is contained in:
@@ -202,7 +202,7 @@ const ExtraOptions = ({
|
||||
/>
|
||||
</div>
|
||||
</StyledInputContainer>
|
||||
<StyledInputContainer>
|
||||
<StyledInputContainer css={no_margin_bottom}>
|
||||
<div className="input-container">
|
||||
<IndeterminateCheckbox
|
||||
id="disable_data_preview"
|
||||
@@ -220,6 +220,22 @@ const ExtraOptions = ({
|
||||
/>
|
||||
</div>
|
||||
</StyledInputContainer>
|
||||
<StyledInputContainer>
|
||||
<div className="input-container">
|
||||
<IndeterminateCheckbox
|
||||
id="expand_rows"
|
||||
indeterminate={false}
|
||||
checked={!!extraJson?.schema_options?.expand_rows}
|
||||
onChange={onExtraInputChange}
|
||||
labelText={t('Enable row expansion in schemas')}
|
||||
/>
|
||||
<InfoTooltip
|
||||
tooltip={t(
|
||||
'For Trino, describe full schemas of nested ROW types, expanding them with dotted paths',
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
</StyledInputContainer>
|
||||
</StyledExpandableForm>
|
||||
</StyledInputContainer>
|
||||
</Collapse.Panel>
|
||||
|
||||
@@ -674,7 +674,7 @@ describe('DatabaseModal', () => {
|
||||
const exposeInSQLLabCheckbox = screen.getByRole('checkbox', {
|
||||
name: /expose database in sql lab/i,
|
||||
});
|
||||
// This is both the checkbox and it's respective SVG
|
||||
// This is both the checkbox and its respective SVG
|
||||
// const exposeInSQLLabCheckboxSVG = checkboxOffSVGs[0].parentElement;
|
||||
const exposeInSQLLabText = screen.getByText(
|
||||
/expose database in sql lab/i,
|
||||
@@ -721,6 +721,13 @@ describe('DatabaseModal', () => {
|
||||
/Disable SQL Lab data preview queries/i,
|
||||
);
|
||||
|
||||
const enableRowExpansionCheckbox = screen.getByRole('checkbox', {
|
||||
name: /enable row expansion in schemas/i,
|
||||
});
|
||||
const enableRowExpansionText = screen.getByText(
|
||||
/enable row expansion in schemas/i,
|
||||
);
|
||||
|
||||
// ---------- Assertions ----------
|
||||
const visibleComponents = [
|
||||
closeButton,
|
||||
@@ -737,6 +744,7 @@ describe('DatabaseModal', () => {
|
||||
checkboxOffSVGs[2],
|
||||
checkboxOffSVGs[3],
|
||||
checkboxOffSVGs[4],
|
||||
checkboxOffSVGs[5],
|
||||
tooltipIcons[0],
|
||||
tooltipIcons[1],
|
||||
tooltipIcons[2],
|
||||
@@ -744,6 +752,7 @@ describe('DatabaseModal', () => {
|
||||
tooltipIcons[4],
|
||||
tooltipIcons[5],
|
||||
tooltipIcons[6],
|
||||
tooltipIcons[7],
|
||||
exposeInSQLLabText,
|
||||
allowCTASText,
|
||||
allowCVASText,
|
||||
@@ -754,6 +763,7 @@ describe('DatabaseModal', () => {
|
||||
enableQueryCostEstimationText,
|
||||
allowDbExplorationText,
|
||||
disableSQLLabDataPreviewQueriesText,
|
||||
enableRowExpansionText,
|
||||
];
|
||||
// These components exist in the DOM but are not visible
|
||||
const invisibleComponents = [
|
||||
@@ -764,6 +774,7 @@ describe('DatabaseModal', () => {
|
||||
enableQueryCostEstimationCheckbox,
|
||||
allowDbExplorationCheckbox,
|
||||
disableSQLLabDataPreviewQueriesCheckbox,
|
||||
enableRowExpansionCheckbox,
|
||||
];
|
||||
visibleComponents.forEach(component => {
|
||||
expect(component).toBeVisible();
|
||||
@@ -771,8 +782,8 @@ describe('DatabaseModal', () => {
|
||||
invisibleComponents.forEach(component => {
|
||||
expect(component).not.toBeVisible();
|
||||
});
|
||||
expect(checkboxOffSVGs).toHaveLength(5);
|
||||
expect(tooltipIcons).toHaveLength(7);
|
||||
expect(checkboxOffSVGs).toHaveLength(6);
|
||||
expect(tooltipIcons).toHaveLength(8);
|
||||
});
|
||||
|
||||
test('renders the "Advanced" - PERFORMANCE tab correctly', async () => {
|
||||
|
||||
@@ -307,6 +307,18 @@ export function dbReducer(
|
||||
}),
|
||||
};
|
||||
}
|
||||
if (action.payload.name === 'expand_rows') {
|
||||
return {
|
||||
...trimmedState,
|
||||
extra: JSON.stringify({
|
||||
...extraJson,
|
||||
schema_options: {
|
||||
...extraJson?.schema_options,
|
||||
[action.payload.name]: !!action.payload.value,
|
||||
},
|
||||
}),
|
||||
};
|
||||
}
|
||||
return {
|
||||
...trimmedState,
|
||||
extra: JSON.stringify({
|
||||
|
||||
Reference in New Issue
Block a user