Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

permalink.js 2.6 KB

You have to be logged in to leave a comment. Sign In
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
50
51
52
  1. const Permalink = require('../../lib/permalink')
  2. const enterpriseServerReleases = require('../../lib/enterprise-server-releases')
  3. const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
  4. // Permalink constructor requires: languageCode, pageVersion, relativePath, title
  5. // Permalink.derive requires: languageCode, relativePath, title, versions (<- FM prop)
  6. describe('Permalink class', () => {
  7. // We can only use Permalink.derive to get the special 'homepage' permalink
  8. test('derives info for unversioned homepage', () => {
  9. const versions = {
  10. 'free-pro-team': '*',
  11. 'enterprise-server': '*'
  12. }
  13. const permalinks = Permalink.derive('en', 'index.md', 'Hello World', versions)
  14. expect(permalinks.length).toBeGreaterThan(1)
  15. const homepagePermalink = permalinks.find(permalink => permalink.pageVersion === 'homepage')
  16. expect(homepagePermalink.href).toBe('/en')
  17. })
  18. test('derives info for non-enterprise versioned homepage', () => {
  19. const permalink = new Permalink('en', nonEnterpriseDefaultVersion, 'index.md', 'Hello World')
  20. expect(permalink.pageVersionTitle).toBe('GitHub.com')
  21. expect(permalink.href).toBe('/en')
  22. })
  23. test('derives info for enterprise server versioned homepage', () => {
  24. const permalink = new Permalink('en', `enterprise-server@${enterpriseServerReleases.latest}`, 'index.md', 'Hello World')
  25. expect(permalink.pageVersionTitle).toBe(`Enterprise Server ${enterpriseServerReleases.latest}`)
  26. expect(permalink.href).toBe(`/en/enterprise-server@${enterpriseServerReleases.latest}`)
  27. })
  28. test('derives info for GitHub.com homepage', () => {
  29. const permalink = new Permalink('en', nonEnterpriseDefaultVersion, 'github/index.md', 'Hello World')
  30. expect(permalink.pageVersionTitle).toBe('GitHub.com')
  31. expect(permalink.href).toBe('/en/github')
  32. })
  33. test('derives info for enterprise version of GitHub.com homepage', () => {
  34. const permalink = new Permalink('en', `enterprise-server@${enterpriseServerReleases.latest}`, 'github/index.md', 'Hello World')
  35. expect(permalink.pageVersionTitle).toBe(`Enterprise Server ${enterpriseServerReleases.latest}`)
  36. expect(permalink.href).toBe(`/en/enterprise-server@${enterpriseServerReleases.latest}/github`)
  37. })
  38. test('preserves input properties', () => {
  39. const permalink = new Permalink('en', nonEnterpriseDefaultVersion, 'index.md', 'Hello World')
  40. expect(permalink.languageCode).toBe('en')
  41. expect(permalink.pageVersion).toBe(nonEnterpriseDefaultVersion)
  42. expect(permalink.relativePath).toBe('index.md')
  43. expect(permalink.title).toBe('Hello World')
  44. })
  45. })
Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...