mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2026-04-02 18:14:58 -04:00
Followup to https://codeberg.org/forgejo/forgejo/pulls/8859, https://codeberg.org/forgejo/forgejo/pulls/9636. Convert the create branch and rename branch modals in the branch list to native dialogs and convert the create branch and create tag in the commit view to native dialogs. The dialogs in the commit view have been simplified and no longer uses javascript to construct the data in the dialog (thus would be eligible for nojs modals). The dialogs have footer styled actions. The rename branch modal now has a 'branch name' label to indicate the field is required. E2E testing is added. Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9760 Reviewed-by: 0ko <0ko@noreply.codeberg.org> Co-authored-by: Gusted <postmaster@gusted.xyz> Co-committed-by: Gusted <postmaster@gusted.xyz>
68 lines
2.7 KiB
TypeScript
68 lines
2.7 KiB
TypeScript
// Copyright 2025 The Forgejo Authors. All rights reserved.
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
// @watch start
|
|
// templates/repo/commit_header.tmpl
|
|
// @watch end
|
|
|
|
import {expect} from '@playwright/test';
|
|
import {dynamic_id, test} from './utils_e2e.ts';
|
|
import {screenshot} from './shared/screenshots.ts';
|
|
|
|
test.use({user: 'user2'});
|
|
|
|
test('Create branch from commit', async ({page}) => {
|
|
let response = await page.goto('/user2/repo1/commit/65f1bf27bc3bf70f64657658635e66094edbcb4d');
|
|
expect(response?.status()).toBe(200);
|
|
|
|
// Open create branch modal.
|
|
await page.locator('.commit-header-buttons .dropdown.button').click();
|
|
await page.getByRole('option', {name: 'Create branch'}).click();
|
|
await expect(page.locator('#create-branch-modal')).toBeVisible();
|
|
await screenshot(page, page.locator('#create-branch-modal'));
|
|
|
|
// Check that it can be cancelled.
|
|
await page.getByRole('button', {name: 'Cancel'}).click();
|
|
await expect(page.locator('#create-branch-modal')).toBeHidden();
|
|
|
|
// Open it again and make a branch.
|
|
await page.locator('.commit-header-buttons .dropdown.button').click();
|
|
await page.getByRole('option', {name: 'Create branch'}).click();
|
|
await expect(page.locator('#create-branch-modal')).toBeVisible();
|
|
|
|
const branchName = dynamic_id();
|
|
await page.getByRole('textbox').fill(branchName);
|
|
await page.getByRole('button', {name: 'Create branch'}).click();
|
|
|
|
// Verify branch exists.
|
|
response = await page.goto(`/user2/repo1/src/branch/${branchName}`);
|
|
expect(response?.status()).toBe(200);
|
|
});
|
|
|
|
test('Create tag from commit', async ({page}) => {
|
|
let response = await page.goto('/user2/repo1/commit/65f1bf27bc3bf70f64657658635e66094edbcb4d');
|
|
expect(response?.status()).toBe(200);
|
|
|
|
// Open create tag modal.
|
|
await page.locator('.commit-header-buttons .dropdown.button').click();
|
|
await page.getByRole('option', {name: 'Create tag'}).click();
|
|
await expect(page.locator('#create-tag-modal')).toBeVisible();
|
|
await screenshot(page, page.locator('#create-tag-modal'));
|
|
|
|
// Check that it can be cancelled.
|
|
await page.getByRole('button', {name: 'Cancel'}).click();
|
|
await expect(page.locator('#create-tag-modal')).toBeHidden();
|
|
|
|
// Open it again and make a branch.
|
|
await page.locator('.commit-header-buttons .dropdown.button').click();
|
|
await page.getByRole('option', {name: 'Create tag'}).click();
|
|
await expect(page.locator('#create-tag-modal')).toBeVisible();
|
|
|
|
const tagName = dynamic_id();
|
|
await page.getByRole('textbox').fill(tagName);
|
|
await page.getByRole('button', {name: 'Create tag'}).click();
|
|
|
|
// Verify tag exists.
|
|
response = await page.goto(`/user2/repo1/releases/tag/${tagName}`);
|
|
expect(response?.status()).toBe(200);
|
|
});
|