Skip to content

Commit

Permalink
feat(metadata-sidebar): test fix and pr comment
Browse files Browse the repository at this point in the history
  • Loading branch information
karolinaru committed Sep 23, 2024
1 parent b8bbcd6 commit c53ea8e
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 11 deletions.
2 changes: 1 addition & 1 deletion src/api/Metadata.js
Original file line number Diff line number Diff line change
Expand Up @@ -769,7 +769,7 @@ class Metadata extends File {
// API does not accept string for float type
if (obj.type === 'float' && value) value = parseFloat(obj.value);
// API does not accept empty string for enum type
if (obj.type === 'enum' && value.length === 0) value = undefined;
if (obj.type === 'enum' && value && value.length === 0) value = undefined;
return [obj.key, value];
}),
)
Expand Down
9 changes: 6 additions & 3 deletions src/elements/content-sidebar/MetadataSidebarRedesign.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -120,12 +120,15 @@ function MetadataSidebarRedesign({
handleDeleteMetadataInstance(metadataInstance);
setEditingTemplate(null);
};
const checkIfTemplateInstanceExists = (id: string): MetadataTemplateInstance => {
return templateInstances.find(templateInstance => templateInstance.id === id);

const isExistingMetadataInstance = (): boolean => {
return (
editingTemplate && !!templateInstances.find(templateInstance => templateInstance.id === editingTemplate.id)
);
};

const handleSubmit = (values: FormValues) => {
checkIfTemplateInstanceExists(editingTemplate?.id)
isExistingMetadataInstance()
? updateMetadataInstance()
: createMetadataInstance(values.metadata as MetadataTemplateInstance, () => setEditingTemplate(null));
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,9 @@ const mockAPI = {
errorCallback(error);
}
}),
createMetadata: jest.fn((_file, template, successCallback, errorCallback, isMetadataRedesign) => {
createMetadata: jest.fn((_file, template, successCallback, errorCallback) => {
try {
successCallback(template);
successCallback();
} catch (error) {
errorCallback(error);
}
Expand Down Expand Up @@ -207,17 +207,17 @@ describe('useSidebarMetadataFetcher', () => {
successCallback({ templateInstances: mockTemplateInstances, templates: mockTemplates });
});
mockAPI.createMetadata.mockImplementation((file, template, successCallback) => {
successCallback(newTemplateInstance);
successCallback();
});

const successCallback = jest.fn();

const { result } = setupHook();

expect(result.current.templateInstances).toEqual(mockTemplateInstances);
await waitFor(() => result.current.createMetadataInstance(newTemplateInstance, jest.fn()));
await waitFor(() => result.current.createMetadataInstance(newTemplateInstance, successCallback));

expect(result.current.templates).toEqual(mockTemplates);
expect(result.current.templateInstances).toEqual([...mockTemplateInstances, newTemplateInstance]);
expect(result.current.errorMessage).toBeNull();
expect(successCallback).toHaveBeenCalled();
});

test('should handle metadata instance creation error', async () => {
Expand Down

0 comments on commit c53ea8e

Please sign in to comment.