forked from github/docs
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsidebar.js
More file actions
45 lines (38 loc) · 2.02 KB
/
sidebar.js
File metadata and controls
45 lines (38 loc) · 2.02 KB
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
require('../../lib/feature-flags')
const { getDOM } = require('../helpers/supertest')
describe('sidebar', () => {
jest.setTimeout(3 * 60 * 1000)
let $homePage, $githubPage, $enterprisePage
beforeAll(async (done) => {
[$homePage, $githubPage, $enterprisePage] = await Promise.all([
getDOM('/en'),
getDOM('/en/github'),
getDOM('/en/enterprise/admin')
])
done()
})
test('highlights active product on Enterprise pages', async () => {
expect($enterprisePage('.sidebar-products li.sidebar-product').length).toBe(1)
expect($enterprisePage('.sidebar-products li.sidebar-product > a').text().trim()).toBe('GitHub Enterprise')
})
test('highlights active product on GitHub pages', async () => {
expect($githubPage('.sidebar-products li.sidebar-product').length).toBe(1)
expect($githubPage('.sidebar-products li.sidebar-product > a').text().trim()).toBe('GitHub.com')
})
test('includes links to external products like the CLI, Atom, Electron, and CodeQL', async () => {
expect($homePage('.sidebar-products a[href="https://cli.github.com/manual"]')).toHaveLength(1)
expect($homePage('.sidebar-products a[href="https://atom.io/docs"]')).toHaveLength(1)
expect($homePage('.sidebar-products a[href="https://electronjs.org/docs"]')).toHaveLength(1)
expect($homePage('.sidebar-products a[href="https://codeql.github.com/docs"]')).toHaveLength(1)
})
test('adds an `is-current-page` class to the sidebar link to the current page', async () => {
const url = '/en/github/setting-up-and-managing-your-github-user-account/managing-user-account-settings'
const $ = await getDOM(url)
expect($('.sidebar-products .is-current-page').length).toBe(1)
expect($('.sidebar-products .is-current-page a').attr('href')).toContain(url)
})
test('does not display Early Access as a product', async () => {
expect($homePage('.sidebar-products li.sidebar-product[title*="Early"]').length).toBe(0)
expect($homePage('.sidebar-products li.sidebar-product[title*="early"]').length).toBe(0)
})
})