diff --git a/src/pages/function-edit/FunctionEditPage.test.tsx b/src/pages/function-edit/FunctionEditPage.test.tsx
index 7a65709..c730a39 100644
--- a/src/pages/function-edit/FunctionEditPage.test.tsx
+++ b/src/pages/function-edit/FunctionEditPage.test.tsx
@@ -122,6 +122,19 @@ describe('FunctionEditPage', () => {
expect(screen.getByRole('button', { name: /Back to Functions/ })).toBeInTheDocument();
});
+ it('shows info bar with function name and repo link after loading', async () => {
+ setupFetchHandlers();
+
+ renderEditPage('my-func');
+
+ await waitFor(() => {
+ expect(screen.getByText('func.yaml')).toBeInTheDocument();
+ });
+
+ const repoLink = screen.getByRole('link', { name: 'twoGiants/my-func' });
+ expect(repoLink).toHaveAttribute('target', '_blank');
+ });
+
it('auto-selects handler file based on runtime from func.yaml', async () => {
setupFetchHandlers();
diff --git a/src/pages/function-edit/FunctionEditPage.tsx b/src/pages/function-edit/FunctionEditPage.tsx
index 00c92d4..3a45b14 100644
--- a/src/pages/function-edit/FunctionEditPage.tsx
+++ b/src/pages/function-edit/FunctionEditPage.tsx
@@ -1,6 +1,15 @@
import { CodeEditor, DocumentTitle, ListPageHeader } from '@openshift-console/dynamic-plugin-sdk';
import type { Language } from '@patternfly/react-code-editor';
-import { EmptyState, EmptyStateBody, Flex, FlexItem, PageSection } from '@patternfly/react-core';
+import {
+ Content,
+ ContentVariants,
+ EmptyState,
+ EmptyStateBody,
+ PageSection,
+ Sidebar,
+ SidebarContent,
+ SidebarPanel,
+} from '@patternfly/react-core';
import { CodeIcon } from '@patternfly/react-icons';
import { useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
@@ -40,15 +49,17 @@ function FunctionEditPageContent() {
-
-
+ {state.repoMetadata && (
+
+ {state.repoMetadata.name}
+ {' ยท '}
+
+ {state.repoMetadata.owner}/{state.repoMetadata.name}
+
+
+ )}
+
+
-
-
+
+
-
-
+
+
>
);
diff --git a/src/pages/function-edit/components/FileTreeView.test.tsx b/src/pages/function-edit/components/FileTreeView.test.tsx
index bd69181..fecf174 100644
--- a/src/pages/function-edit/components/FileTreeView.test.tsx
+++ b/src/pages/function-edit/components/FileTreeView.test.tsx
@@ -174,6 +174,23 @@ describe('FileTreeView', () => {
expect(screen.queryByText('No files')).not.toBeInTheDocument();
});
+ it('renders folder icons on directory nodes but not files', () => {
+ render(
+ ,
+ );
+
+ const testDir = screen.getByText('test').closest('[role="treeitem"]');
+ expect(testDir?.querySelector('.pf-v6-c-tree-view__node-icon')).toBeInTheDocument();
+
+ const fileItem = screen.getByText('index.js').closest('[role="treeitem"]');
+ expect(fileItem?.querySelector('.pf-v6-c-tree-view__node-icon')).not.toBeInTheDocument();
+ });
+
it('shows dirty indicator for modified files', () => {
render(
): TreeViewDat
name: dirtyPaths.has(id) ? `${name} \u25CF` : name,
defaultExpanded: true,
};
- if (isDir) item.children = [];
+ if (isDir) {
+ item.children = [];
+ item.icon = ;
+ item.expandedIcon = ;
+ }
items.push(item);
}