2025-10-30 21:06:14 +01:00
|
|
|
// Copyright 2025 The Forgejo Authors. All rights reserved.
|
|
|
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
|
|
|
|
|
// @watch start
|
|
|
|
|
// templates/repo/branch/list.tmpl
|
|
|
|
|
// web_src/js/features/repo-branch.ts
|
|
|
|
|
// @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 branch', async ({page}) => {
|
|
|
|
|
let response = await page.goto('/user2/repo1/branches');
|
|
|
|
|
expect(response?.status()).toBe(200);
|
|
|
|
|
|
|
|
|
|
// Open create branch modal.
|
|
|
|
|
await page.getByRole('button', {name: 'Create new branch from "branch2"'}).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.getByRole('button', {name: 'Create new branch from "branch2"'}).click();
|
|
|
|
|
await expect(page.locator('#create-branch-modal')).toBeVisible();
|
|
|
|
|
|
|
|
|
|
const branchName = dynamic_id();
|
|
|
|
|
await page.getByRole('textbox').fill(branchName);
|
|
|
|
|
await page.getByRole('button', {name: 'Confirm'}).click();
|
|
|
|
|
|
|
|
|
|
// Verify branch exists.
|
|
|
|
|
response = await page.goto(`/user2/repo1/src/branch/${branchName}`);
|
|
|
|
|
expect(response?.status()).toBe(200);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('Rename normal branch', async ({page}) => {
|
|
|
|
|
let response = await page.goto('/user2/repo1/branches');
|
|
|
|
|
expect(response?.status()).toBe(200);
|
|
|
|
|
|
|
|
|
|
// Open rename branch modal.
|
|
|
|
|
await page.locator('button[data-is-default-branch="false"]:not([data-old-branch-name="branch2"])').first().click();
|
|
|
|
|
await expect(page.locator('#rename-branch-modal')).toBeVisible();
|
|
|
|
|
await expect(page.locator('#rename-branch-modal .warning')).toBeHidden();
|
|
|
|
|
await screenshot(page, page.locator('#rename-branch-modal'));
|
|
|
|
|
|
|
|
|
|
// Check that it can be cancelled.
|
|
|
|
|
await page.getByRole('button', {name: 'Cancel'}).click();
|
|
|
|
|
await expect(page.locator('#rename-branch-modal')).toBeHidden();
|
|
|
|
|
|
|
|
|
|
// Open it again and rename the branch.
|
|
|
|
|
await page.locator('button[data-is-default-branch="false"]:not([data-old-branch-name="branch2"])').first().click();
|
|
|
|
|
await expect(page.locator('#rename-branch-modal')).toBeVisible();
|
|
|
|
|
await expect(page.locator('#rename-branch-modal .warning')).toBeHidden();
|
|
|
|
|
|
|
|
|
|
const branchName = dynamic_id();
|
|
|
|
|
await page.getByRole('textbox').fill(branchName);
|
|
|
|
|
await page.getByRole('button', {name: 'Confirm'}).click();
|
|
|
|
|
|
|
|
|
|
// Verify branch exists.
|
|
|
|
|
response = await page.goto(`/user2/repo1/src/branch/${branchName}`);
|
|
|
|
|
expect(response?.status()).toBe(200);
|
|
|
|
|
});
|
|
|
|
|
|
2025-11-13 17:23:08 +01:00
|
|
|
test('Rename default branch', async ({page}) => {
|
2025-10-30 21:06:14 +01:00
|
|
|
let response = await page.goto('/user2/repo1/branches');
|
|
|
|
|
expect(response?.status()).toBe(200);
|
|
|
|
|
|
|
|
|
|
// Open rename branch modal.
|
|
|
|
|
await page.locator('button[data-is-default-branch="true"]').click();
|
|
|
|
|
await expect(page.locator('#rename-branch-modal')).toBeVisible();
|
|
|
|
|
await expect(page.locator('#rename-branch-modal .warning')).toBeVisible();
|
|
|
|
|
await screenshot(page, page.locator('#rename-branch-modal'));
|
|
|
|
|
|
|
|
|
|
// Check that it can be cancelled.
|
|
|
|
|
await page.getByRole('button', {name: 'Cancel'}).click();
|
|
|
|
|
await expect(page.locator('#rename-branch-modal')).toBeHidden();
|
|
|
|
|
|
|
|
|
|
// Open it again and rename the branch.
|
|
|
|
|
await page.locator('button[data-is-default-branch="true"]').click();
|
|
|
|
|
await expect(page.locator('#rename-branch-modal')).toBeVisible();
|
|
|
|
|
await expect(page.locator('#rename-branch-modal .warning')).toBeVisible();
|
|
|
|
|
|
|
|
|
|
const branchName = dynamic_id();
|
|
|
|
|
await page.getByRole('textbox').fill(branchName);
|
|
|
|
|
await page.getByRole('button', {name: 'Confirm'}).click();
|
|
|
|
|
|
|
|
|
|
// Verify branch exists.
|
|
|
|
|
response = await page.goto(`/user2/repo1/src/branch/${branchName}`);
|
|
|
|
|
expect(response?.status()).toBe(200);
|
|
|
|
|
});
|