mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-10 12:49:52 +01:00
fix: WIP toggle by reducing max issue title
- when the PR title has the maximum length, the WIP toggle switch does nothing - work around this by slightly reducing the max input size (- 10 characters for eventually long prefixes) - test WIP toggling edge case in playwright fix(e2e): increase timeouts A look at recent runs suggests they should be increased globally. The timeouts in the config file have no timeout by default.
This commit is contained in:
parent
8d0530650e
commit
7eac5feb74
4 changed files with 20 additions and 3 deletions
|
@ -46,10 +46,10 @@ export default {
|
||||||
locale: 'en-US',
|
locale: 'en-US',
|
||||||
|
|
||||||
/* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */
|
/* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */
|
||||||
actionTimeout: 1000,
|
actionTimeout: 2000,
|
||||||
|
|
||||||
/* Maximum time allowed for navigation, such as `page.goto()`. */
|
/* Maximum time allowed for navigation, such as `page.goto()`. */
|
||||||
navigationTimeout: 5 * 1000,
|
navigationTimeout: 10 * 1000,
|
||||||
|
|
||||||
/* Base URL to use in actions like `await page.goto('/')`. */
|
/* Base URL to use in actions like `await page.goto('/')`. */
|
||||||
baseURL: BASE_URL,
|
baseURL: BASE_URL,
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
{{if $canEditIssueTitle}}
|
{{if $canEditIssueTitle}}
|
||||||
<div class="ui form issue-title tw-hidden" id="issue-title-editor">
|
<div class="ui form issue-title tw-hidden" id="issue-title-editor">
|
||||||
<div class="ui input tw-flex-1">
|
<div class="ui input tw-flex-1">
|
||||||
<input value="{{.Issue.Title}}" data-old-title="{{.Issue.Title}}" maxlength="255" autocomplete="off" class="js-quick-submit">
|
<input value="{{.Issue.Title}}" data-old-title="{{.Issue.Title}}" maxlength="245" autocomplete="off" class="js-quick-submit">
|
||||||
</div>
|
</div>
|
||||||
<div class="button-row">
|
<div class="button-row">
|
||||||
<button class="ui small basic cancel button">{{ctx.Locale.Tr "repo.issues.cancel"}}</button>
|
<button class="ui small basic cancel button">{{ctx.Locale.Tr "repo.issues.cancel"}}</button>
|
||||||
|
|
|
@ -51,6 +51,22 @@ test('Pull: Toggle WIP', async ({browser}, workerInfo) => {
|
||||||
// remove again
|
// remove again
|
||||||
await click_toggle_wip({page});
|
await click_toggle_wip({page});
|
||||||
await check_wip({page}, false);
|
await check_wip({page}, false);
|
||||||
|
// check maximum title length is handled gracefully
|
||||||
|
const maxLenStr = prTitle + 'a'.repeat(240);
|
||||||
|
await page.locator('#issue-title-edit-show').click();
|
||||||
|
await page.locator('#issue-title-editor input').fill(maxLenStr);
|
||||||
|
await page.getByText('Save').click();
|
||||||
|
await page.waitForLoadState('networkidle');
|
||||||
|
await click_toggle_wip({page});
|
||||||
|
await check_wip({page}, true);
|
||||||
|
await click_toggle_wip({page});
|
||||||
|
await check_wip({page}, false);
|
||||||
|
await expect(page.locator('h1')).toContainText(maxLenStr);
|
||||||
|
// restore original title
|
||||||
|
await page.locator('#issue-title-edit-show').click();
|
||||||
|
await page.locator('#issue-title-editor input').fill(prTitle);
|
||||||
|
await page.getByText('Save').click();
|
||||||
|
await check_wip({page}, false);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Issue: Labels', async ({browser}, workerInfo) => {
|
test('Issue: Labels', async ({browser}, workerInfo) => {
|
||||||
|
|
|
@ -22,6 +22,7 @@ const LOGIN_PASSWORD = 'password';
|
||||||
// log in user and store session info. This should generally be
|
// log in user and store session info. This should generally be
|
||||||
// run in test.beforeAll(), then the session can be loaded in tests.
|
// run in test.beforeAll(), then the session can be loaded in tests.
|
||||||
export async function login_user(browser, workerInfo, user) {
|
export async function login_user(browser, workerInfo, user) {
|
||||||
|
test.setTimeout(60000);
|
||||||
// Set up a new context
|
// Set up a new context
|
||||||
const context = await test_context(browser);
|
const context = await test_context(browser);
|
||||||
const page = await context.newPage();
|
const page = await context.newPage();
|
||||||
|
|
Loading…
Reference in a new issue