-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathutils.test.ts
49 lines (43 loc) · 1.34 KB
/
utils.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// TODO: create real tests
import { validateEmail, mergeMeta } from './utils'
test('validateEmail returns false for non-emails', () => {
expect(validateEmail(undefined)).toBe(false)
expect(validateEmail(null)).toBe(false)
expect(validateEmail('')).toBe(false)
expect(validateEmail('not-an-email')).toBe(false)
expect(validateEmail('n@')).toBe(false)
})
test('validateEmail returns true for emails', () => {
expect(validateEmail('[email protected]')).toBe(true)
})
test('mergeMeta returns a valid title and og:title', () => {
const siteTitle = 'Site Title'
window.ENV = { SITE_TITLE: siteTitle }
const matches = [
{
meta: [
{
title: 'Mock title',
},
{
name: 'description',
content: 'Mock description',
},
{
property: 'og:title',
content: 'Mock og:title',
},
],
id: 'root',
},
]
const titleAfter = 'Bar'
const merged = mergeMeta(matches, [
{ title: titleAfter },
{ property: 'og:title', content: titleAfter },
])
const mergedTitle: any = merged.find((item: any) => item.title)
const mergedOGTitle: any = merged.find((item: any) => item.property === 'og:title')
expect(mergedTitle?.title).toEqual(`${titleAfter} - ${siteTitle}`)
expect(mergedOGTitle?.content).toEqual(`${titleAfter} - ${siteTitle}`)
})