From eddb76166fe41fe3f788bb62adba8873a881904b Mon Sep 17 00:00:00 2001 From: Alexander Schneider Date: Mon, 5 Apr 2021 14:04:03 -0700 Subject: [PATCH] fix: scenario where branchPosition is not in upstream (#162) Co-authored-by: Alex Schneider --- src/git/remoteNameAndBranch.test.ts | 10 ++++++++++ src/git/remoteNameAndBranch.ts | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/git/remoteNameAndBranch.test.ts b/src/git/remoteNameAndBranch.test.ts index 6f1f386c..d7b78085 100644 --- a/src/git/remoteNameAndBranch.test.ts +++ b/src/git/remoteNameAndBranch.test.ts @@ -61,5 +61,15 @@ describe('git', () => { assert.strictEqual(remoteName, 'remote-one', 'incorrect remote name') assert.strictEqual(branch, 'feature', 'incorrect branch name') }) + + it('falls back to first remote and branch when branch is not pushed to upstream', async () => { + const { remoteName, branch } = await gitRemoteNameAndBranch( + '', + createMockGitHelpers(['origin'], 'feature', 'origin/master') + ) + + assert.strictEqual(remoteName, 'origin', 'incorrect remote name') + assert.strictEqual(branch, 'feature', 'incorrect branch name') + }) }) }) diff --git a/src/git/remoteNameAndBranch.ts b/src/git/remoteNameAndBranch.ts index 8055063e..36a0aaa2 100644 --- a/src/git/remoteNameAndBranch.ts +++ b/src/git/remoteNameAndBranch.ts @@ -48,7 +48,7 @@ export async function gitRemoteNameAndBranch( const branchPosition = upstreamAndBranch.lastIndexOf(branch) const maybeRemote = upstreamAndBranch.slice(0, branchPosition - 1) - if (maybeRemote) { + if (branchPosition !== -1 && maybeRemote) { remoteName = maybeRemote } } catch {