Read-only mirror — the public repositories of the Forgejo instance, refreshed every 10 minutes. The live instance (fg.dieschoenewolke.de) is reachable only over the VPN; clone here with https://git.dieschoenewolke.de/git/<owner>/<repo>.git.
summaryrefslogtreecommitdiff
path: root/__test__/ref-helper.test.ts
diff options
context:
space:
mode:
Diffstat (limited to '__test__/ref-helper.test.ts')
-rw-r--r--__test__/ref-helper.test.ts42
1 files changed, 41 insertions, 1 deletions
diff --git a/__test__/ref-helper.test.ts b/__test__/ref-helper.test.ts
index 5c8d76b..4943abd 100644
--- a/__test__/ref-helper.test.ts
+++ b/__test__/ref-helper.test.ts
@@ -152,7 +152,22 @@ describe('ref-helper tests', () => {
it('getRefSpec sha + refs/tags/', async () => {
const refSpec = refHelper.getRefSpec('refs/tags/my-tag', commit)
expect(refSpec.length).toBe(1)
- expect(refSpec[0]).toBe(`+${commit}:refs/tags/my-tag`)
+ expect(refSpec[0]).toBe(`+refs/tags/my-tag:refs/tags/my-tag`)
+ })
+
+ it('getRefSpec sha + refs/tags/ with fetchTags', async () => {
+ // When fetchTags is true, only include tags wildcard (specific tag is redundant)
+ const refSpec = refHelper.getRefSpec('refs/tags/my-tag', commit, true)
+ expect(refSpec.length).toBe(1)
+ expect(refSpec[0]).toBe('+refs/tags/*:refs/tags/*')
+ })
+
+ it('getRefSpec sha + refs/heads/ with fetchTags', async () => {
+ // When fetchTags is true, include both the branch refspec and tags wildcard
+ const refSpec = refHelper.getRefSpec('refs/heads/my/branch', commit, true)
+ expect(refSpec.length).toBe(2)
+ expect(refSpec[0]).toBe('+refs/tags/*:refs/tags/*')
+ expect(refSpec[1]).toBe(`+${commit}:refs/remotes/origin/my/branch`)
})
it('getRefSpec sha only', async () => {
@@ -168,6 +183,14 @@ describe('ref-helper tests', () => {
expect(refSpec[1]).toBe('+refs/tags/my-ref*:refs/tags/my-ref*')
})
+ it('getRefSpec unqualified ref only with fetchTags', async () => {
+ // When fetchTags is true, skip specific tag pattern since wildcard covers all
+ const refSpec = refHelper.getRefSpec('my-ref', '', true)
+ expect(refSpec.length).toBe(2)
+ expect(refSpec[0]).toBe('+refs/tags/*:refs/tags/*')
+ expect(refSpec[1]).toBe('+refs/heads/my-ref*:refs/remotes/origin/my-ref*')
+ })
+
it('getRefSpec refs/heads/ only', async () => {
const refSpec = refHelper.getRefSpec('refs/heads/my/branch', '')
expect(refSpec.length).toBe(1)
@@ -187,4 +210,21 @@ describe('ref-helper tests', () => {
expect(refSpec.length).toBe(1)
expect(refSpec[0]).toBe('+refs/tags/my-tag:refs/tags/my-tag')
})
+
+ it('getRefSpec refs/tags/ only with fetchTags', async () => {
+ // When fetchTags is true, only include tags wildcard (specific tag is redundant)
+ const refSpec = refHelper.getRefSpec('refs/tags/my-tag', '', true)
+ expect(refSpec.length).toBe(1)
+ expect(refSpec[0]).toBe('+refs/tags/*:refs/tags/*')
+ })
+
+ it('getRefSpec refs/heads/ only with fetchTags', async () => {
+ // When fetchTags is true, include both the branch refspec and tags wildcard
+ const refSpec = refHelper.getRefSpec('refs/heads/my/branch', '', true)
+ expect(refSpec.length).toBe(2)
+ expect(refSpec[0]).toBe('+refs/tags/*:refs/tags/*')
+ expect(refSpec[1]).toBe(
+ '+refs/heads/my/branch:refs/remotes/origin/my/branch'
+ )
+ })
})