Skip to content

Commit

Permalink
final working version
Browse files Browse the repository at this point in the history
  • Loading branch information
YuliaKrimerman committed Oct 25, 2024
1 parent 2abe9b5 commit dfc382e
Show file tree
Hide file tree
Showing 8 changed files with 90 additions and 174 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ class ModelVersionDetails {
return cy.findByTestId('model-version-description');
}

findSourceModelFormat() {
return cy.findByTestId('source-model-format');
findSourceModelFormat(subComponent: 'group' | 'edit' | 'save' | 'cancel') {
return cy.findByTestId(`source-model-format-${subComponent}`);
}

findSourceModelVersion() {
return cy.findByTestId('source-model-version');
findSourceModelVersion(subComponent: 'group' | 'edit' | 'save' | 'cancel') {
return cy.findByTestId(`source-model-version-${subComponent}`);
}

findMoreLabelsButton() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -211,20 +211,6 @@ const initIntercepts = () => {
},
mockModelArtifactList({}),
);

cy.intercept('PATCH', '/api/service/modelregistry/*/api/model_registry/*/model_artifacts/*', {
body: {
artifactType: 'model-artifact',
createTimeSinceEpoch: '1729694473577',
customProperties: {},
id: '24',
lastUpdateTimeSinceEpoch: '1729712188616',
modelFormatName: 'UPdate',
name: 'test1-n1-artifact',
state: 'LIVE',
uri: 's3://b/t?endpoint=b',
},
}).as('updateArtifact');
};

describe('Model version details', () => {
Expand Down Expand Up @@ -410,9 +396,13 @@ describe('Model version details', () => {
mockModelArtifact({}),
).as('updateModelFormat');

modelVersionDetails.findSourceModelFormat().find('[data-testid="edit-button"]').click();
modelVersionDetails.findSourceModelFormat().find('input').clear().type('UpdatedFormat');
modelVersionDetails.findSourceModelFormat().find('[data-testid="save-button"]').click();
modelVersionDetails.findSourceModelFormat('edit').click();
modelVersionDetails
.findSourceModelFormat('group')
.find('input')
.clear()
.type('UpdatedFormat');
modelVersionDetails.findSourceModelFormat('save').click();

cy.wait('@updateModelFormat').then((interception) => {
expect(interception.request.body).to.deep.equal({
Expand All @@ -434,9 +424,13 @@ describe('Model version details', () => {
mockModelArtifact({}),
).as('updateModelVersion');

modelVersionDetails.findSourceModelVersion().find('[data-testid="edit-button"]').click();
modelVersionDetails.findSourceModelVersion().find('input').clear().type('2.0.0');
modelVersionDetails.findSourceModelVersion().find('[data-testid="save-button"]').click();
modelVersionDetails.findSourceModelVersion('edit').click();
modelVersionDetails
.findSourceModelVersion('group')
.find('input')
.clear()
.type('2.0.0');
modelVersionDetails.findSourceModelVersion('save').click();

cy.wait('@updateModelVersion').then((interception) => {
expect(interception.request.body).to.deep.equal({

Check failure on line 436 in frontend/src/__tests__/cypress/cypress/tests/mocked/modelRegistry/modelVersionDetails.cy.ts

View workflow job for this annotation

GitHub Actions / Tests (18.x)

Replace `⏎········.findSourceModelVersion('group')⏎········.find('input')⏎········.clear()⏎········` with `.findSourceModelVersion('group').find('input').clear()`
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/components/DashboardDescriptionListGroup.scss
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.odh-custom-description-list-term-with-action > span {
/* Workaround for missing functionality in PF DescriptionList, see https://github.com/patternfly/patternfly/issues/6583 */
width: 100%;
}
}
16 changes: 12 additions & 4 deletions frontend/src/components/DashboardDescriptionListGroup.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ type EditableProps = {
onEditClick: () => void;
onSaveEditsClick: () => void;
onDiscardEditsClick: () => void;
editButtonTestId?: string;
saveButtonTestId?: string;
cancelButtonTestId?: string;
};

export type DashboardDescriptionListGroupProps = {
Expand All @@ -32,6 +35,7 @@ export type DashboardDescriptionListGroupProps = {
isEmpty?: boolean;
contentWhenEmpty?: React.ReactNode;
children: React.ReactNode;
groupTestId?: string;
} & (({ isEditable: true } & EditableProps) | ({ isEditable?: false } & Partial<EditableProps>));

const DashboardDescriptionListGroup: React.FC<DashboardDescriptionListGroupProps> = (props) => {
Expand All @@ -49,9 +53,13 @@ const DashboardDescriptionListGroup: React.FC<DashboardDescriptionListGroupProps
onSaveEditsClick,
onDiscardEditsClick,
children,
groupTestId,
editButtonTestId,
saveButtonTestId,
cancelButtonTestId,
} = props;
return (
<DescriptionListGroup>
<DescriptionListGroup data-testid={groupTestId}>
{action || isEditable ? (
<DescriptionListTerm className="odh-custom-description-list-term-with-action">
<Split>
Expand All @@ -62,7 +70,7 @@ const DashboardDescriptionListGroup: React.FC<DashboardDescriptionListGroupProps
<ActionList isIconList>
<ActionListItem>
<Button
data-testid={`save-edit-button-${title}`}
data-testid={saveButtonTestId}
aria-label={`Save edits to ${title}`}
variant="link"
onClick={onSaveEditsClick}
Expand All @@ -73,7 +81,7 @@ const DashboardDescriptionListGroup: React.FC<DashboardDescriptionListGroupProps
</ActionListItem>
<ActionListItem>
<Button
data-testid={`discard-edit-button-${title}`}
data-testid={cancelButtonTestId}
aria-label={`Discard edits to ${title} `}
variant="plain"
onClick={onDiscardEditsClick}
Expand All @@ -85,7 +93,7 @@ const DashboardDescriptionListGroup: React.FC<DashboardDescriptionListGroupProps
</ActionList>
) : (
<Button
data-testid={`edit-button-${title}`}
data-testid={editButtonTestId}
aria-label={`Edit ${title}`}
isInline
variant="link"
Expand Down
85 changes: 0 additions & 85 deletions frontend/src/components/EditableInputDescriptionListGroup.tsx

This file was deleted.

45 changes: 31 additions & 14 deletions frontend/src/components/EditableTextDescriptionListGroup.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as React from 'react';
import { ExpandableSection, TextArea } from '@patternfly/react-core';
import { ExpandableSection, TextArea, TextInput } from '@patternfly/react-core';
import DashboardDescriptionListGroup, {
DashboardDescriptionListGroupProps,
} from './DashboardDescriptionListGroup';
Expand All @@ -10,8 +10,9 @@ type EditableTextDescriptionListGroupProps = Pick<
> & {
value: string;
saveEditedValue: (value: string) => Promise<void>;
testid?: string;
baseTestId?: string;
isArchive?: boolean;
editableVariant: 'TextInput' | 'TextArea';
};

const EditableTextDescriptionListGroup: React.FC<EditableTextDescriptionListGroupProps> = ({
Expand All @@ -20,7 +21,8 @@ const EditableTextDescriptionListGroup: React.FC<EditableTextDescriptionListGrou
value,
isArchive,
saveEditedValue,
testid,
baseTestId,
editableVariant,
}) => {
const [isEditing, setIsEditing] = React.useState(false);
const [unsavedValue, setUnsavedValue] = React.useState(value);
Expand All @@ -34,17 +36,32 @@ const EditableTextDescriptionListGroup: React.FC<EditableTextDescriptionListGrou
isEditable={!isArchive}
isEditing={isEditing}
isSavingEdits={isSavingEdits}
groupTestId={`${baseTestId}-group`}
editButtonTestId={`${baseTestId}-edit`}
saveButtonTestId={`${baseTestId}-save`}
cancelButtonTestId={`${baseTestId}-cancel`}
contentWhenEditing={
<TextArea
autoFocus
data-testid={`edit-text-area-${title}`}
aria-label={`Text box for editing ${title}`}
value={unsavedValue}
onChange={(_event, v) => setUnsavedValue(v)}
isDisabled={isSavingEdits}
rows={24}
resizeOrientation="vertical"
/>
editableVariant === 'TextInput' ? (
<TextInput
autoFocus
data-testid={`${baseTestId}-input`}
aria-label={`Text input for editing ${title}`}
value={unsavedValue}
onChange={(_event, v) => setUnsavedValue(v)}
isDisabled={isSavingEdits}
/>
) : (
<TextArea
autoFocus
data-testid={`${baseTestId}-input`}
aria-label={`Text box for editing ${title}`}
value={unsavedValue}
onChange={(_event, v) => setUnsavedValue(v)}
isDisabled={isSavingEdits}
rows={24}
resizeOrientation="vertical"
/>
)
}
onEditClick={() => {
setUnsavedValue(value);
Expand All @@ -65,7 +82,7 @@ const EditableTextDescriptionListGroup: React.FC<EditableTextDescriptionListGrou
}}
>
<ExpandableSection
data-testid={testid}
data-testid={baseTestId}
variant="truncate"
truncateMaxLines={12}
toggleText={isTextExpanded ? 'Show less' : 'Show more'}
Expand Down
Loading

0 comments on commit dfc382e

Please sign in to comment.