VueTorrent/tests/unit/helpers.spec.js

47 lines
2 KiB
JavaScript

import { describe, it, expect } from 'vitest'
import { splitByUrl, getDomainBody } from '@/helpers'
describe('Helpers', () => {
describe('splitByUrl()', () => {
it('should not split anything', () => {
expect(splitByUrl('test')).toEqual(['test'])
})
it('should split to array if http/https is found', () => {
expect(splitByUrl('test http://test.something')).toEqual(['test ', 'http://test.something'])
expect(splitByUrl('123456 test@345 https://something.else test@@!!#789')).toEqual(['123456 test@345 ', 'https://something.else', ' test@@!!#789'])
})
it('should split to array if www is found', () => {
expect(splitByUrl('test www.test.something')).toEqual(['test ', 'www.test.something'])
})
it('should split to array where both www and http/https are found', () => {
expect(splitByUrl('test http://www.test.something')).toEqual(['test ', 'http://www.test.something'])
expect(splitByUrl('test https://www.something.else')).toEqual(['test ', 'https://www.something.else'])
})
it('should split correctly if more than one url exists', () => {
expect(splitByUrl('test http://www.test.something some string and https://onemoreurl.com')).toEqual([
'test ',
'http://www.test.something',
' some string and ',
'https://onemoreurl.com'
])
})
})
describe('getDomainBody()', () => {
it('should not extract anyting', () => {
expect(getDomainBody('www.test.org')).toEqual('')
})
it('should extract if integrated url exists', () => {
expect(getDomainBody('https://test.org/announce.php?passkey=123abc')).toEqual('test')
})
it('should extract correctly from subdomain', () => {
expect(getDomainBody('https://ab.cd.test.org/announce.php?passkey=123abc')).toEqual('test')
})
it('should extract only the first one from multi urls', () => {
expect(getDomainBody('https://test.org/announce.php?passkey=123abc https://second.org/announce.php?passkey=123abc')).toEqual('test')
})
})
})