diff --git a/templates/repo/release/new.tmpl b/templates/repo/release/new.tmpl index c0b81524a6..cdcf9b9e8d 100644 --- a/templates/repo/release/new.tmpl +++ b/templates/repo/release/new.tmpl @@ -131,34 +131,44 @@ {{end}}
- + {{end}} diff --git a/tests/e2e/release.test.e2e.ts b/tests/e2e/release.test.e2e.ts index bf2d6b6d4b..2d51c10714 100644 --- a/tests/e2e/release.test.e2e.ts +++ b/tests/e2e/release.test.e2e.ts @@ -19,9 +19,9 @@ test.describe('Releases', () => { test('External Release Attachments', async ({page, isMobile}) => { test.skip(isMobile); - // Click "New Release" + // Click "New release" await page.goto('/user2/repo2/releases'); - await page.click('.button.small.primary'); + await page.getByRole('link', {name: 'New release'}).click(); // Fill out form and create new release await expect(page).toHaveURL('/user2/repo2/releases/new'); @@ -35,7 +35,7 @@ test.describe('Releases', () => { await page.fill('input[name=attachment-new-exturl-2]', 'https://forgejo.org/'); await page.click('.remove-rel-attach'); await screenshot(page); - await page.click('.button.small.primary'); + await page.getByRole('button', {name: 'Publish release'}).click(); // Validate release page and click edit await expect(page).toHaveURL('/user2/repo2/releases'); @@ -69,7 +69,7 @@ test.describe('Releases', () => { await page.locator('.attachment_edit:visible').nth(2).fill('Test3'); await page.locator('.attachment_edit:visible').nth(3).fill('https://gitea.com/'); await screenshot(page); - await page.click('.button.small.primary'); + await page.getByRole('button', {name: 'Update release'}).click(); // Validate release page and click edit await expect(page).toHaveURL('/user2/repo2/releases'); @@ -95,7 +95,7 @@ test.describe('Releases', () => { await page.locator('input[name=title]').pressSequentially('v2.0'); await page.locator('input[name=tag_name]').pressSequentially('2.0'); - await page.click('.button.small.primary'); + await page.getByRole('button', {name: 'Publish release'}).click(); await page.goto('/user2/repo2/releases/edit/2.0'); diff --git a/tests/integration/release_test.go b/tests/integration/release_test.go index 5c9fc0bbbe..c82bd6b325 100644 --- a/tests/integration/release_test.go +++ b/tests/integration/release_test.go @@ -34,9 +34,18 @@ func createNewRelease(t *testing.T, session *TestSession, repoURL, tag, title st func createNewReleaseTarget(t *testing.T, session *TestSession, repoURL, tag, title, target string, preRelease, draft bool) { req := NewRequest(t, "GET", repoURL+"/releases/new") resp := session.MakeRequest(t, req, http.StatusOK) - htmlDoc := NewHTMLParser(t, resp.Body) + page := NewHTMLParser(t, resp.Body) - link, exists := htmlDoc.doc.Find("form.ui.form").Attr("action") + // Buttons that should be present + page.AssertElement(t, `form button[name="tag_only"]`, true) // Create tag + page.AssertElement(t, `form button[name="draft"]`, true) // Save draft + assert.Contains(t, page.Find(`form .primary.button`).Text(), "Publish release") + + // Buttons that should not be present + page.AssertElement(t, `form a.danger.button[data-modal-id="delete-release"]`, false) + page.AssertElement(t, `form a.button[href$="/releases"]`, false) // Cancel + + link, exists := page.Find("form.ui.form").Attr("action") assert.True(t, exists, "The template has changed") postData := map[string]string{ @@ -179,6 +188,38 @@ func TestCreateReleaseDraft(t *testing.T) { checkLatestReleaseAndCount(t, session, "/user2/repo1", "v0.0.1", translation.NewLocale("en-US").TrString("repo.release.draft"), 4) } +func TestEditRelease(t *testing.T) { + defer tests.PrepareTestEnv(t)() + + session := loginUser(t, "user2") + page := NewHTMLParser(t, session.MakeRequest(t, NewRequest(t, "GET", "/user2/repo1/releases/edit/v1.0"), http.StatusOK).Body) + + // Buttons that should be present + page.AssertElement(t, `form .danger.button[data-modal-id="delete-release"]`, true) + page.AssertElement(t, `form a.button[href$="/releases"]`, true) // Cancel + assert.Contains(t, page.Find(`form .primary.button`).Text(), "Update release") + + // Buttons that should not be present + page.AssertElement(t, `form button[name="draft"]`, false) // Save draft + page.AssertElement(t, `form button[name="tag_only"]`, false) // Create tag +} + +func TestEditReleaseDraft(t *testing.T) { + defer tests.PrepareTestEnv(t)() + + session := loginUser(t, "user2") + page := NewHTMLParser(t, session.MakeRequest(t, NewRequest(t, "GET", "/user2/repo1/releases/edit/draft-release"), http.StatusOK).Body) + + // Buttons that should be present + page.AssertElement(t, `form a.danger.button[data-modal-id="delete-release"]`, true) + page.AssertElement(t, `form a.button[href$="/releases"]`, true) // Cancel + page.AssertElement(t, `form .button[name="draft"]`, true) // Save draft + assert.Contains(t, page.Find(`form .primary.button`).Text(), "Publish release") + + // Buttons that should not be present + page.AssertElement(t, `form button[name="tag_only"]`, false) // Create tag +} + func TestCreateReleasePaging(t *testing.T) { defer tests.PrepareTestEnv(t)() diff --git a/web_src/css/repo/release-tag.css b/web_src/css/repo/release-tag.css index 6c24abc79b..0d5b9d3a27 100644 --- a/web_src/css/repo/release-tag.css +++ b/web_src/css/repo/release-tag.css @@ -99,17 +99,7 @@ padding-bottom: 10px; } -@media (max-width: 438px) { - .repository.new.release .field button, - .repository.new.release .field input { - width: 100%; - } -} - @media (max-width: 767.98px) { - .repository.new.release .field button { - margin-bottom: 1em; - } .release-list-search { order: 2 !important; }