diff --git a/models/fixtures/pull_request.yml b/models/fixtures/pull_request.yml index 9a16316e5a..fbc0d504f8 100644 --- a/models/fixtures/pull_request.yml +++ b/models/fixtures/pull_request.yml @@ -64,6 +64,7 @@ base_branch: branch2 merge_base: 985f0301dba5e7b34be866819cd15ad3d8f508ee has_merged: false + allow_maintainer_edit: true - id: 6 diff --git a/tests/e2e/pr-title.test.e2e.ts b/tests/e2e/pr-title.test.e2e.ts new file mode 100644 index 0000000000..390cc81298 --- /dev/null +++ b/tests/e2e/pr-title.test.e2e.ts @@ -0,0 +1,25 @@ +// Copyright 2025 The Forgejo Authors. All rights reserved. +// SPDX-License-Identifier: GPL-3.0-or-later + +// @watch start +// templates/repo/issue/view_title.tmpl +// web_src/js/features/repo-issue.js +// @watch end + +import {expect} from '@playwright/test'; +import {save_visual, test} from './utils_e2e.ts'; + +test.use({user: 'user2'}); + +test('PR: title edit', async ({page}) => { + const response = await page.goto('/user2/repo1/pulls/5'); + expect(response?.status()).toBe(200); + + await expect(page.locator('#editable-label')).toBeVisible(); + await save_visual(page); + + // Labels AGit and Editable are hidden when title is in edit mode + await page.locator('#issue-title-edit-show').click(); + await expect(page.locator('#editable-label')).toBeHidden(); + await save_visual(page); +}); diff --git a/web_src/js/features/repo-issue.js b/web_src/js/features/repo-issue.js index 00154eaf4c..c28bf08442 100644 --- a/web_src/js/features/repo-issue.js +++ b/web_src/js/features/repo-issue.js @@ -631,9 +631,11 @@ export function initRepoIssueTitleEdit() { const issueTitleInput = issueTitleEditor.querySelector('input'); const oldTitle = issueTitleInput.getAttribute('data-old-title'); + const normalModeElements = [issueTitleDisplay, '#pull-desc-display', '#agit-label', '#editable-label']; issueTitleDisplay.querySelector('#issue-title-edit-show').addEventListener('click', () => { - hideElem(issueTitleDisplay); - hideElem('#pull-desc-display'); + for (const element of normalModeElements) { + hideElem(element); + } showElem(issueTitleEditor); showElem('#pull-desc-editor'); if (!issueTitleInput.value.trim()) { @@ -644,8 +646,9 @@ export function initRepoIssueTitleEdit() { issueTitleEditor.querySelector('.ui.cancel.button').addEventListener('click', () => { hideElem(issueTitleEditor); hideElem('#pull-desc-editor'); - showElem(issueTitleDisplay); - showElem('#pull-desc-display'); + for (const element of normalModeElements) { + showElem(element); + } }); const pullDescEditor = document.querySelector('#pull-desc-editor'); // it may not exist for a merged PR