diff --git a/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/CloneCollectionItem/index.js b/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/CloneCollectionItem/index.js
index 31e328dd2..427042fb4 100644
--- a/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/CloneCollectionItem/index.js
+++ b/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/CloneCollectionItem/index.js
@@ -3,7 +3,7 @@ import toast from 'react-hot-toast';
import { useFormik } from 'formik';
import * as Yup from 'yup';
import Modal from 'components/Modal';
-import { useDispatch } from 'react-redux';
+import { useDispatch, useSelector } from 'react-redux';
import { isItemAFolder } from 'utils/tabs';
import { cloneItem } from 'providers/ReduxStore/slices/collections/actions';
import { IconArrowBackUp, IconEdit, IconCaretDown } from '@tabler/icons';
@@ -18,6 +18,7 @@ import Button from 'ui/Button';
const CloneCollectionItem = ({ collectionUid, item, onClose }) => {
const dispatch = useDispatch();
+ const collection = useSelector((state) => state.collections.collections?.find((c) => c.uid === collectionUid));
const isFolder = isItemAFolder(item);
const inputRef = useRef();
const [isEditing, toggleEditing] = useState(false);
@@ -168,7 +169,7 @@ const CloneCollectionItem = ({ collectionUid, item, onClose }) => {
onChange={formik.handleChange}
value={formik.values.filename || ''}
/>
- {itemType !== 'folder' && .bru}
+ {itemType !== 'folder' && .{collection?.format || 'bru'}}
) : (
diff --git a/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/RenameCollectionItem/index.js b/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/RenameCollectionItem/index.js
index 9103c2189..73c2ddc03 100644
--- a/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/RenameCollectionItem/index.js
+++ b/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/RenameCollectionItem/index.js
@@ -2,7 +2,7 @@ import React, { useRef, useEffect, useState, forwardRef } from 'react';
import { useFormik } from 'formik';
import * as Yup from 'yup';
import Modal from 'components/Modal';
-import { useDispatch } from 'react-redux';
+import { useDispatch, useSelector } from 'react-redux';
import { isItemAFolder } from 'utils/tabs';
import { renameItem, saveRequest, closeTabs } from 'providers/ReduxStore/slices/collections/actions';
import path from 'utils/common/path';
@@ -18,6 +18,7 @@ import Button from 'ui/Button';
const RenameCollectionItem = ({ collectionUid, item, onClose }) => {
const dispatch = useDispatch();
+ const collection = useSelector((state) => state.collections.collections?.find((c) => c.uid === collectionUid));
const isFolder = isItemAFolder(item);
const inputRef = useRef();
const [isEditing, toggleEditing] = useState(false);
@@ -168,6 +169,7 @@ const RenameCollectionItem = ({ collectionUid, item, onClose }) => {
size={16}
strokeWidth={1.5}
onClick={() => toggleEditing(true)}
+ data-testid="rename-request-edit-icon"
/>
)}
@@ -186,7 +188,7 @@ const RenameCollectionItem = ({ collectionUid, item, onClose }) => {
onChange={formik.handleChange}
value={formik.values.filename || ''}
/>
- {itemType !== 'folder' && .bru}
+ {itemType !== 'folder' && .{collection?.format || 'bru'}}
) : (
diff --git a/tests/sidebar/rename-collection-item.spec.ts b/tests/sidebar/rename-collection-item.spec.ts
new file mode 100644
index 000000000..44eaa3ef4
--- /dev/null
+++ b/tests/sidebar/rename-collection-item.spec.ts
@@ -0,0 +1,45 @@
+import { test, expect } from '../../playwright';
+import { buildCommonLocators, createCollection, createRequest, closeAllCollections } from '../utils/page';
+
+test.describe('Rename Collection Item - File Extension', () => {
+ test.afterEach(async ({ page }) => {
+ await closeAllCollections(page);
+ });
+
+ test('should show .yml extension for OpenCollection format when renaming a request', async ({ page, createTmpDir }) => {
+ const locators = buildCommonLocators(page);
+ const testDir = await createTmpDir('yml-rename-test');
+
+ // Create a collection with OpenCollection (YAML) format
+ await test.step('Create collection with OpenCollection format', async () => {
+ await createCollection(page, 'YML Rename Test', testDir);
+ });
+
+ // Create a request inside the collection
+ await createRequest(page, 'Test Request', 'YML Rename Test');
+
+ // Open rename dialog via context menu
+ await test.step('Open rename dialog and verify .yml extension', async () => {
+ await locators.sidebar.request('Test Request').hover();
+ await locators.actions.collectionItemActions('Test Request').click();
+ await locators.dropdown.item('Rename').click();
+
+ const renameModal = page.locator('.bruno-modal').filter({ hasText: 'Rename Request' });
+ await renameModal.waitFor({ state: 'visible' });
+
+ // Show filesystem name via Options dropdown
+ await renameModal.locator('.btn-advanced').click();
+ await page.locator('.dropdown-item').filter({ hasText: 'Show Filesystem Name' }).click();
+
+ // Click the IconEdit SVG to enable filename editing
+ await renameModal.getByTestId('rename-request-edit-icon').click();
+
+ // Verify the extension shows .yml, not .bru
+ const extensionLabel = renameModal.locator('.file-extension');
+ await expect(extensionLabel).toHaveText('.yml');
+
+ // Close the rename modal
+ await renameModal.getByRole('button', { name: 'Cancel' }).click();
+ });
+ });
+});