mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-12-07 14:09:47 +00:00
Webkit and Mobile safari are comically unreliable, will fail for unexplainable reasons and are very hard to run locally in comparison with the other supported platforms. I do not remember the last time where these two platforms were able to catch a regression where the other platforms did not. I would like to stress, for the historical record, that many hours has been devoted into adjusting the tests and following best practices to make these two platforms more stable but despite those, IMO wasted, efforts these two platforms are causing many hours of wasted CPU time simply because they are flaky and make (new) contributors nervous if their change contains a regression or not. To my knowledge, the tests are not broken for these two platforms. If you go to the issue tracker you will not find issues by users that use these two platforms and report that Forgejo is broken. It does not reflect reality. This is the sunk cost fallacy, bite the bullet and agree that these platforms will not contribute positively to Forgejo's excellent test suite. Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10103 Reviewed-by: Michael Kriese <michael.kriese@gmx.de> Reviewed-by: Mathieu Fenniak <mfenniak@noreply.codeberg.org> 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);
|
|
});
|