You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
3.8 KiB
100 lines
3.8 KiB
import { describe, expect, test } from 'vitest' |
|
import { cloneArrayToReadMeUrls } from './utils' |
|
|
|
describe('cloneArrayToReadMeUrls', () => { |
|
test('for each clone url returns url to /raw/HEAD/README.md and /raw/HEAD/readme.md', () => { |
|
expect( |
|
cloneArrayToReadMeUrls([ |
|
'https://gitea.com/orgname/reponame', |
|
'https://gitlab.com/orgname/reponame', |
|
]) |
|
).toEqual([ |
|
'https://gitea.com/orgname/reponame/raw/HEAD/README.md', |
|
'https://gitea.com/orgname/reponame/raw/HEAD/readme.md', |
|
'https://gitlab.com/orgname/reponame/raw/HEAD/README.md', |
|
'https://gitlab.com/orgname/reponame/raw/HEAD/readme.md', |
|
]) |
|
}) |
|
test('for github link use raw.githubusercontent.com/HEAD', () => { |
|
expect( |
|
cloneArrayToReadMeUrls(['https://github.com/orgname/reponame']) |
|
).toEqual([ |
|
'https://raw.githubusercontent.com/orgname/reponame/HEAD/README.md', |
|
'https://raw.githubusercontent.com/orgname/reponame/HEAD/readme.md', |
|
]) |
|
}) |
|
test('for sr.hr link to /blob/HEAD', () => { |
|
expect(cloneArrayToReadMeUrls(['https://sr.ht/~orgname/reponame'])).toEqual( |
|
[ |
|
'https://sr.ht/~orgname/reponame/blob/HEAD/README.md', |
|
'https://sr.ht/~orgname/reponame/blob/HEAD/readme.md', |
|
] |
|
) |
|
}) |
|
test('for git.launchpad.net link to /plain', () => { |
|
expect( |
|
cloneArrayToReadMeUrls(['https://git.launchpad.net/orgname/reponame']) |
|
).toEqual([ |
|
'https://git.launchpad.net/orgname/reponame/plain/README.md', |
|
'https://git.launchpad.net/orgname/reponame/plain/readme.md', |
|
]) |
|
}) |
|
test('for git.savannah.gnu.org link to /plain', () => { |
|
expect( |
|
cloneArrayToReadMeUrls(['https://git.savannah.gnu.org/orgname/reponame']) |
|
).toEqual([ |
|
'https://git.savannah.gnu.org/orgname/reponame/plain/README.md', |
|
'https://git.savannah.gnu.org/orgname/reponame/plain/readme.md', |
|
]) |
|
}) |
|
describe('transform clone address to url', () => { |
|
test('strips trailing / from address', () => { |
|
expect( |
|
cloneArrayToReadMeUrls(['https://codeberg.org/orgname/reponame/']) |
|
).toEqual([ |
|
'https://codeberg.org/orgname/reponame/raw/HEAD/README.md', |
|
'https://codeberg.org/orgname/reponame/raw/HEAD/readme.md', |
|
]) |
|
}) |
|
test('strips .git from address', () => { |
|
expect( |
|
cloneArrayToReadMeUrls(['https://codeberg.org/orgname/reponame.git']) |
|
).toEqual([ |
|
'https://codeberg.org/orgname/reponame/raw/HEAD/README.md', |
|
'https://codeberg.org/orgname/reponame/raw/HEAD/readme.md', |
|
]) |
|
}) |
|
test('git@codeberg.org:orgname/reponame.git to address', () => { |
|
expect( |
|
cloneArrayToReadMeUrls(['git@codeberg.org:orgname/reponame.git']) |
|
).toEqual([ |
|
'https://codeberg.org/orgname/reponame/raw/HEAD/README.md', |
|
'https://codeberg.org/orgname/reponame/raw/HEAD/readme.md', |
|
]) |
|
}) |
|
test('ssh://codeberg.org/orgname/reponame to address', () => { |
|
expect( |
|
cloneArrayToReadMeUrls(['ssh://codeberg.org/orgname/reponame']) |
|
).toEqual([ |
|
'https://codeberg.org/orgname/reponame/raw/HEAD/README.md', |
|
'https://codeberg.org/orgname/reponame/raw/HEAD/readme.md', |
|
]) |
|
}) |
|
test('strips port eg ssh://git@git.v0l.io:2222/Kieran/snort.git to address', () => { |
|
expect( |
|
cloneArrayToReadMeUrls(['ssh://git@git.v0l.io:2222/Kieran/snort.git']) |
|
).toEqual([ |
|
'https://git.v0l.io/Kieran/snort/raw/HEAD/README.md', |
|
'https://git.v0l.io/Kieran/snort/raw/HEAD/readme.md', |
|
]) |
|
}) |
|
test('https://custom.com/deep/deeper/deeper to address', () => { |
|
expect( |
|
cloneArrayToReadMeUrls(['https://custom.com/deep/deeper/deeper']) |
|
).toEqual([ |
|
'https://custom.com/deep/deeper/deeper/raw/HEAD/README.md', |
|
'https://custom.com/deep/deeper/deeper/raw/HEAD/readme.md', |
|
]) |
|
}) |
|
}) |
|
})
|
|
|