diff options
author | Aryan Goharzad <arrygoo@gmail.com> | 2023-01-19 13:53:11 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-19 12:53:11 -0600 |
commit | f10a8308d9f6bfb907c8a2458cbf78b4cfad88d2 (patch) | |
tree | 0cb50ba6736ea67773e76f9000d07095a654bb6d /__tests__/lib/extractMetaHtml.test.ts | |
parent | 9230d52ff596056429a773298b2728619afe3432 (diff) | |
download | voidsky-f10a8308d9f6bfb907c8a2458cbf78b4cfad88d2.tar.zst |
Fixes youtube embed issues (#50)
* fixes youtube embed * move extractMetaHtml test to its own file * tests cleanup * Add fallback for youtube meta data * lint * Check for youtube in the url domain * use hostname instead of full url to check for link domain * checks only for domain
Diffstat (limited to '__tests__/lib/extractMetaHtml.test.ts')
-rw-r--r-- | __tests__/lib/extractMetaHtml.test.ts | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/__tests__/lib/extractMetaHtml.test.ts b/__tests__/lib/extractMetaHtml.test.ts new file mode 100644 index 000000000..4ac653db0 --- /dev/null +++ b/__tests__/lib/extractMetaHtml.test.ts @@ -0,0 +1,70 @@ +import {extractHtmlMeta} from '../../src/lib/extractHtmlMeta' +import {exampleComHtml} from './__mocks__/exampleComHtml' +import {youtubeHTML} from './__mocks__/youtubeHtml' + +describe('extractHtmlMeta', () => { + const cases = [ + ['', {}], + ['nothing', {}], + ['<title>title</title>', {title: 'title'}], + ['<title> aSd!@#AC </title>', {title: 'aSd!@#AC'}], + ['<title>\n title\n </title>', {title: 'title'}], + ['<meta name="title" content="meta title">', {title: 'meta title'}], + [ + '<meta name="description" content="meta description">', + {description: 'meta description'}, + ], + ['<meta property="og:title" content="og title">', {title: 'og title'}], + [ + '<meta property="og:description" content="og description">', + {description: 'og description'}, + ], + [ + '<meta property="og:image" content="https://ogimage.com/foo.png">', + {image: 'https://ogimage.com/foo.png'}, + ], + [ + '<meta property="twitter:title" content="twitter title">', + {title: 'twitter title'}, + ], + [ + '<meta property="twitter:description" content="twitter description">', + {description: 'twitter description'}, + ], + [ + '<meta property="twitter:image" content="https://twitterimage.com/foo.png">', + {image: 'https://twitterimage.com/foo.png'}, + ], + ['<meta\n name="title"\n content="meta title"\n>', {title: 'meta title'}], + ] + + it.each(cases)( + 'given the html tag %p, returns %p', + (input, expectedResult) => { + const output = extractHtmlMeta(input) + expect(output).toEqual(expectedResult) + }, + ) + + it('extracts title and description from a generic HTML page', () => { + const input = exampleComHtml + const expectedOutput = { + title: 'Example Domain', + description: 'An example website', + } + const output = extractHtmlMeta(input) + expect(output).toEqual(expectedOutput) + }) + + it('extracts title and description from a generic youtube page', () => { + const input = youtubeHTML + const expectedOutput = { + title: 'HD Video (1080p) with Relaxing Music of Native American Shamans', + description: + 'Stunning HD Video ( 1080p ) of Patagonian Nature with Relaxing Native American Shamanic Music. HD footage used from ', + image: 'https://i.ytimg.com/vi/x6UITRjhijI/sddefault.jpg', + } + const output = extractHtmlMeta(input) + expect(output).toEqual(expectedOutput) + }) +}) |