From b7065b77487f72833b273e72b1263b4961571e17 Mon Sep 17 00:00:00 2001 From: 0ko <0ko@noreply.codeberg.org> Date: Fri, 7 Feb 2025 10:01:09 +0000 Subject: [PATCH] fix(ui): make Finish review button work again (#6818) I bricked the Finish review button in https://codeberg.org/forgejo/forgejo/pulls/6729 because I was naive and thought there are no mines laid within JS. I was wrong, because review panel was expected to be a child of review button. I switched both selectors to context of reviewBox. Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/6818 Reviewed-by: Gusted Co-authored-by: 0ko <0ko@noreply.codeberg.org> Co-committed-by: 0ko <0ko@noreply.codeberg.org> --- tests/e2e/pr-review.test.e2e.ts | 25 +++++++++++++++++++++++++ web_src/js/features/repo-issue.js | 4 ++-- 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 tests/e2e/pr-review.test.e2e.ts diff --git a/tests/e2e/pr-review.test.e2e.ts b/tests/e2e/pr-review.test.e2e.ts new file mode 100644 index 0000000000..b619cdbcd1 --- /dev/null +++ b/tests/e2e/pr-review.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/diff/new_review.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: Finish review', async ({page}) => { + const response = await page.goto('/user2/repo1/pulls/5/files'); + expect(response?.status()).toBe(200); + + await expect(page.locator('.tippy-box .review-box-panel')).toBeHidden(); + await save_visual(page); + + // Review panel should appear after clicking Finish review + await page.locator('#review-box .js-btn-review').click(); + await expect(page.locator('.tippy-box .review-box-panel')).toBeVisible(); + await save_visual(page); +}); diff --git a/web_src/js/features/repo-issue.js b/web_src/js/features/repo-issue.js index 3a0def1786..00154eaf4c 100644 --- a/web_src/js/features/repo-issue.js +++ b/web_src/js/features/repo-issue.js @@ -517,8 +517,8 @@ export function initRepoPullRequestReview() { // The following part is only for diff views if (!$('.repository.pull.diff').length) return; - const $reviewBtn = $('.js-btn-review'); - const $panel = $reviewBtn.parent().find('.review-box-panel'); + const $reviewBtn = $reviewBox.parent().find('.js-btn-review'); + const $panel = $reviewBox.parent().find('.review-box-panel'); const $closeBtn = $panel.find('.close'); if ($reviewBtn.length && $panel.length) {