about summary refs log tree commit diff
path: root/__tests__/lib/string.test.ts
diff options
context:
space:
mode:
Diffstat (limited to '__tests__/lib/string.test.ts')
-rw-r--r--__tests__/lib/string.test.ts45
1 files changed, 36 insertions, 9 deletions
diff --git a/__tests__/lib/string.test.ts b/__tests__/lib/string.test.ts
index 0032ebf31..4f6fd62d6 100644
--- a/__tests__/lib/string.test.ts
+++ b/__tests__/lib/string.test.ts
@@ -1,17 +1,18 @@
 import {
-  extractEntities,
-  detectLinkables,
-  pluralize,
+  getYoutubeVideoId,
   makeRecordUri,
-  ago,
-  makeValidHandle,
-  createFullHandle,
-  enforceLen,
-  cleanError,
   toNiceDomain,
   toShortUrl,
   toShareUrl,
-} from '../../src/lib/strings'
+} from '../../src/lib/strings/url-helpers'
+import {pluralize, enforceLen} from '../../src/lib/strings/helpers'
+import {ago} from '../../src/lib/strings/time'
+import {
+  extractEntities,
+  detectLinkables,
+} from '../../src/lib/strings/rich-text-detection'
+import {makeValidHandle, createFullHandle} from '../../src/lib/strings/handles'
+import {cleanError} from '../../src/lib/strings/errors'
 
 describe('extractEntities', () => {
   const knownHandles = new Set(['handle.com', 'full123.test-of-chars'])
@@ -487,3 +488,29 @@ describe('toShareUrl', () => {
     }
   })
 })
+
+describe('getYoutubeVideoId', () => {
+  it(' should return undefined for invalid youtube links', () => {
+    expect(getYoutubeVideoId('')).toBeUndefined()
+    expect(getYoutubeVideoId('https://www.google.com')).toBeUndefined()
+    expect(getYoutubeVideoId('https://www.youtube.com')).toBeUndefined()
+    expect(
+      getYoutubeVideoId('https://www.youtube.com/channelName'),
+    ).toBeUndefined()
+    expect(
+      getYoutubeVideoId('https://www.youtube.com/channel/channelName'),
+    ).toBeUndefined()
+  })
+
+  it('getYoutubeVideoId should return video id for valid youtube links', () => {
+    expect(getYoutubeVideoId('https://www.youtube.com/watch?v=videoId')).toBe(
+      'videoId',
+    )
+    expect(
+      getYoutubeVideoId(
+        'https://www.youtube.com/watch?v=videoId&feature=share',
+      ),
+    ).toBe('videoId')
+    expect(getYoutubeVideoId('https://youtu.be/videoId')).toBe('videoId')
+  })
+})