diff --git a/packages/app/src/git/policy.test.ts b/packages/app/src/git/policy.test.ts index 771ca3bff..4e21c27a7 100644 --- a/packages/app/src/git/policy.test.ts +++ b/packages/app/src/git/policy.test.ts @@ -377,7 +377,7 @@ describe("git-actions-policy", () => { expect(actions.primary).toMatchObject({ id: "merge-pr-squash", - label: "Merge", + label: "Merge PR (squash)", }); }); @@ -398,7 +398,7 @@ describe("git-actions-policy", () => { expect(actions.primary).toMatchObject({ id: "merge-pr-squash", - label: "Merge", + label: "Merge PR (squash)", }); }); @@ -458,7 +458,7 @@ describe("git-actions-policy", () => { expect(actions.primary).toMatchObject({ id: "merge-pr-squash", - label: "Merge", + label: "Merge PR (squash)", }); }); @@ -512,7 +512,7 @@ describe("git-actions-policy", () => { expect(actions.primary).toMatchObject({ id: "merge-pr-squash", - label: "Merge", + label: "Merge PR (squash)", }); expect(actions.secondary.some((action) => action.id === "merge-branch")).toBe(true); }); @@ -583,7 +583,7 @@ describe("git-actions-policy", () => { }, { id: "merge-pr-squash", - label: "Merge", + label: "Merge PR (squash)", pendingLabel: "Merging PR...", successLabel: "PR merged", disabled: false, @@ -592,7 +592,7 @@ describe("git-actions-policy", () => { }, { id: "merge-pr-merge", - label: "Merge", + label: "Merge PR (merge)", pendingLabel: "Merging PR...", successLabel: "PR merged", disabled: false, @@ -601,7 +601,7 @@ describe("git-actions-policy", () => { }, { id: "merge-pr-rebase", - label: "Merge", + label: "Merge PR (rebase)", pendingLabel: "Merging PR...", successLabel: "PR merged", disabled: false, @@ -703,7 +703,10 @@ describe("git-actions-policy", () => { ); expect(oldDaemonStatus.github).toBeUndefined(); - expect(actions.primary).toMatchObject({ id: "merge-pr-squash", label: "Merge" }); + expect(actions.primary).toMatchObject({ + id: "merge-pr-squash", + label: "Merge PR (squash)", + }); expect(actions.secondary.map((action) => action.id)).toEqual([ "pull", "push", @@ -744,7 +747,7 @@ describe("git-actions-policy", () => { expect(actions.primary).toMatchObject({ id: "enable-pr-auto-merge-squash", - label: "Auto merge", + label: "Auto merge (squash)", }); expect(actions.secondary.map((action) => action.id)).toEqual([ "pull", @@ -762,6 +765,41 @@ describe("git-actions-policy", () => { ).toBe(false); }); + it.each([ + ["SQUASH", "enable-pr-auto-merge-squash", "Auto merge (squash)"], + ["MERGE", "enable-pr-auto-merge-merge", "Auto merge (merge)"], + ["REBASE", "enable-pr-auto-merge-rebase", "Auto merge (rebase)"], + ] as const)( + "labels the %s auto-merge action with its method", + (viewerDefaultMergeMethod, id, label) => { + const actions = buildGitActions( + createInput({ + hasRemote: true, + isOnBaseBranch: false, + aheadCount: 2, + hasPullRequest: true, + pullRequestUrl: "https://example.com/pr/993", + pullRequestState: "open", + pullRequestMergeable: "MERGEABLE", + pullRequestGithub: githubStatus({ + mergeStateStatus: "BLOCKED", + viewerCanEnableAutoMerge: true, + repository: { + autoMergeAllowed: true, + mergeCommitAllowed: true, + squashMergeAllowed: true, + rebaseMergeAllowed: true, + viewerDefaultMergeMethod, + }, + }), + shipDefault: "pr", + }), + ); + + expect(actions.primary).toMatchObject({ id, label }); + }, + ); + it("does not offer auto-merge when the daemon feature gate is missing", () => { const actions = buildGitActions( createInput({ @@ -851,7 +889,7 @@ describe("git-actions-policy", () => { expect(actions.primary).toMatchObject({ id: "merge-pr-merge", - label: "Merge", + label: "Merge PR (merge)", }); expect(actions.secondary.map((action) => action.id)).toEqual([ "pull", diff --git a/packages/app/src/i18n/resources/ar.ts b/packages/app/src/i18n/resources/ar.ts index d82735eda..806fc7b67 100644 --- a/packages/app/src/i18n/resources/ar.ts +++ b/packages/app/src/i18n/resources/ar.ts @@ -604,16 +604,16 @@ export const ar: TranslationResources = { success: "مؤرشف", }, mergePr: { - squash: "دمج", - merge: "دمج", - rebase: "دمج", + squash: "دمج PR (squash)", + merge: "دمج PR (merge)", + rebase: "دمج PR (rebase)", pending: "دمج PR...", success: "تم دمج PR", }, autoMerge: { - enableSquash: "دمج تلقائي", - enableMerge: "دمج تلقائي", - enableRebase: "دمج تلقائي", + enableSquash: "دمج تلقائي (squash)", + enableMerge: "دمج تلقائي (merge)", + enableRebase: "دمج تلقائي (rebase)", enabled: "تم تمكين الدمج التلقائي", enabling: "تمكين الدمج التلقائي...", disabling: "تعطيل الدمج التلقائي...", diff --git a/packages/app/src/i18n/resources/en.ts b/packages/app/src/i18n/resources/en.ts index 15822fd65..26ecc630c 100644 --- a/packages/app/src/i18n/resources/en.ts +++ b/packages/app/src/i18n/resources/en.ts @@ -603,16 +603,16 @@ export const en = { success: "Archived", }, mergePr: { - squash: "Merge", - merge: "Merge", - rebase: "Merge", + squash: "Merge PR (squash)", + merge: "Merge PR (merge)", + rebase: "Merge PR (rebase)", pending: "Merging PR...", success: "PR merged", }, autoMerge: { - enableSquash: "Auto merge", - enableMerge: "Auto merge", - enableRebase: "Auto merge", + enableSquash: "Auto merge (squash)", + enableMerge: "Auto merge (merge)", + enableRebase: "Auto merge (rebase)", enabled: "Auto-merge enabled", enabling: "Enabling auto-merge...", disabling: "Disabling auto-merge...", diff --git a/packages/app/src/i18n/resources/es.ts b/packages/app/src/i18n/resources/es.ts index 963e8b6fe..bb3579440 100644 --- a/packages/app/src/i18n/resources/es.ts +++ b/packages/app/src/i18n/resources/es.ts @@ -610,16 +610,16 @@ export const es: TranslationResources = { success: "Archivado", }, mergePr: { - squash: "Fusionar", - merge: "Fusionar", - rebase: "Fusionar", - pending: "FusionandoPR...", - success: "PRfusionado", + squash: "Fusionar PR (squash)", + merge: "Fusionar PR (merge)", + rebase: "Fusionar PR (rebase)", + pending: "Fusionando PR...", + success: "PR fusionado", }, autoMerge: { - enableSquash: "Fusión automática", - enableMerge: "Fusión automática", - enableRebase: "Fusión automática", + enableSquash: "Fusión automática (squash)", + enableMerge: "Fusión automática (merge)", + enableRebase: "Fusión automática (rebase)", enabled: "Combinación automática habilitada", enabling: "Habilitando la fusión automática...", disabling: "Desactivando la fusión automática...", diff --git a/packages/app/src/i18n/resources/fr.ts b/packages/app/src/i18n/resources/fr.ts index fe5fcacd4..8b8dd8327 100644 --- a/packages/app/src/i18n/resources/fr.ts +++ b/packages/app/src/i18n/resources/fr.ts @@ -610,16 +610,16 @@ export const fr: TranslationResources = { success: "Archivé", }, mergePr: { - squash: "Fusionner", - merge: "Fusionner", - rebase: "Fusionner", - pending: "Fusion dePR...", - success: "PRfusionné", + squash: "Fusionner PR (squash)", + merge: "Fusionner PR (merge)", + rebase: "Fusionner PR (rebase)", + pending: "Fusion de PR...", + success: "PR fusionné", }, autoMerge: { - enableSquash: "Fusion automatique", - enableMerge: "Fusion automatique", - enableRebase: "Fusion automatique", + enableSquash: "Fusion automatique (squash)", + enableMerge: "Fusion automatique (merge)", + enableRebase: "Fusion automatique (rebase)", enabled: "Fusion automatique activée", enabling: "Activation de la fusion automatique...", disabling: "Désactivation de la fusion automatique...", diff --git a/packages/app/src/i18n/resources/ru.ts b/packages/app/src/i18n/resources/ru.ts index a17d1a597..f01330d94 100644 --- a/packages/app/src/i18n/resources/ru.ts +++ b/packages/app/src/i18n/resources/ru.ts @@ -609,16 +609,16 @@ export const ru: TranslationResources = { success: "В архиве", }, mergePr: { - squash: "Объединить", - merge: "Объединить", - rebase: "Объединить", + squash: "Объединить PR (squash)", + merge: "Объединить PR (merge)", + rebase: "Объединить PR (rebase)", pending: "Объединение PR...", success: "PR объединен", }, autoMerge: { - enableSquash: "Автообъединение", - enableMerge: "Автообъединение", - enableRebase: "Автообъединение", + enableSquash: "Автообъединение (squash)", + enableMerge: "Автообъединение (merge)", + enableRebase: "Автообъединение (rebase)", enabled: "Автоматическое объединение включено", enabling: "Включение автоматического объединения...", disabling: "Отключение автоматического объединения...", diff --git a/packages/app/src/i18n/resources/zh-CN.ts b/packages/app/src/i18n/resources/zh-CN.ts index 3a88db254..e637c7567 100644 --- a/packages/app/src/i18n/resources/zh-CN.ts +++ b/packages/app/src/i18n/resources/zh-CN.ts @@ -602,16 +602,16 @@ export const zhCN: TranslationResources = { success: "已归档", }, mergePr: { - squash: "Merge", - merge: "Merge", - rebase: "Merge", + squash: "Merge PR (squash)", + merge: "Merge PR (merge)", + rebase: "Merge PR (rebase)", pending: "正在 merge PR...", success: "PR 已 merge", }, autoMerge: { - enableSquash: "Auto merge", - enableMerge: "Auto merge", - enableRebase: "Auto merge", + enableSquash: "Auto merge (squash)", + enableMerge: "Auto merge (merge)", + enableRebase: "Auto merge (rebase)", enabled: "Auto-merge 已启用", enabling: "正在启用 auto-merge...", disabling: "正在禁用 auto-merge...",