Skip to content

Commit 2b2f752

Browse files
authored
Merge pull request #18260 from github/repo-sync
repo sync
2 parents 147e14f + 952c76d commit 2b2f752

File tree

4 files changed

+74
-70
lines changed

4 files changed

+74
-70
lines changed

tests/rendering/products.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import { describe, jest } from '@jest/globals'
2+
3+
import { getDOM, getJSON } from '../helpers/e2etest.js'
4+
import nonEnterpriseDefaultVersion from '../../lib/non-enterprise-default-version.js'
5+
6+
describe('mobile-only products nav', () => {
7+
const cases = [
8+
// Note the unversioned homepage at `/` does not have a product selected in the mobile dropdown
9+
['/github', 'GitHub'],
10+
// Enterprise server
11+
['/en/enterprise/admin', 'Enterprise administrators'],
12+
[
13+
'/en/enterprise/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-git-repository-using-the-command-line',
14+
'Get started',
15+
],
16+
17+
['/desktop', 'GitHub Desktop'],
18+
['/actions', 'GitHub Actions'],
19+
20+
// localized
21+
['/ja/desktop', 'GitHub Desktop'],
22+
]
23+
24+
test.each(cases)('on %p, renders current product %p', async (url, name) => {
25+
expect((await getDOM(url))('[data-testid=product-picker] summary').text().trim()).toBe(name)
26+
})
27+
})
28+
29+
describe('products middleware', () => {
30+
jest.setTimeout(5 * 60 * 1000)
31+
32+
test('adds res.context.activeProducts array', async () => {
33+
const products = await getJSON('/en?json=activeProducts')
34+
expect(Array.isArray(products)).toBe(true)
35+
})
36+
37+
test('adds res.context.currentProduct string on homepage', async () => {
38+
const currentProduct = await getJSON('/en?json=currentProduct')
39+
expect(currentProduct).toBe('homepage')
40+
})
41+
42+
test('adds res.context.currentProduct object', async () => {
43+
const currentProduct = await getJSON(
44+
`/en/${nonEnterpriseDefaultVersion}/github?json=currentProduct`
45+
)
46+
expect(currentProduct).toBe('github')
47+
})
48+
})

tests/rendering/versions.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { describe, jest } from '@jest/globals'
2+
3+
import { allVersions } from '../../lib/all-versions.js'
4+
import { latest } from '../../lib/enterprise-server-releases.js'
5+
import nonEnterpriseDefaultVersion from '../../lib/non-enterprise-default-version.js'
6+
import { getJSON } from '../helpers/e2etest.js'
7+
8+
describe('versions middleware', () => {
9+
jest.setTimeout(60 * 1000)
10+
11+
test('adds res.context.allVersions object', async () => {
12+
const allVersionsFromMiddleware = await getJSON('/en?json=allVersions')
13+
expect(allVersionsFromMiddleware).toEqual(allVersions)
14+
})
15+
16+
test('adds res.context.currentVersion string', async () => {
17+
let currentVersion = await getJSON('/en?json=currentVersion')
18+
expect(currentVersion).toBe(nonEnterpriseDefaultVersion)
19+
20+
currentVersion = await getJSON(`/en/${nonEnterpriseDefaultVersion}?json=currentVersion`)
21+
expect(currentVersion).toBe(nonEnterpriseDefaultVersion)
22+
23+
currentVersion = await getJSON(`/en/enterprise-server@${latest}?json=currentVersion`)
24+
expect(currentVersion).toBe(`enterprise-server@${latest}`)
25+
})
26+
})

tests/unit/products.js

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
1-
import { jest } from '@jest/globals'
21
import revalidator from 'revalidator'
32
import { productMap } from '../../lib/all-products.js'
43
import schema from '../helpers/schemas/products-schema.js'
5-
import { getDOM, getJSON } from '../helpers/supertest.js'
6-
import nonEnterpriseDefaultVersion from '../../lib/non-enterprise-default-version.js'
7-
8-
jest.useFakeTimers('legacy')
94

105
describe('products module', () => {
116
test('is an object with product ids as keys', () => {
@@ -21,47 +16,3 @@ describe('products module', () => {
2116
})
2217
})
2318
})
24-
25-
describe('mobile-only products nav', () => {
26-
const cases = [
27-
// Note the unversioned homepage at `/` does not have a product selected in the mobile dropdown
28-
['/github', 'GitHub'],
29-
// Enterprise server
30-
['/en/enterprise/admin', 'Enterprise administrators'],
31-
[
32-
'/en/enterprise/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-git-repository-using-the-command-line',
33-
'Get started',
34-
],
35-
36-
['/desktop', 'GitHub Desktop'],
37-
['/actions', 'GitHub Actions'],
38-
39-
// localized
40-
['/ja/desktop', 'GitHub Desktop'],
41-
]
42-
43-
test.each(cases)('on %p, renders current product %p', async (url, name) => {
44-
expect((await getDOM(url))('[data-testid=product-picker] summary').text().trim()).toBe(name)
45-
})
46-
})
47-
48-
describe('products middleware', () => {
49-
jest.setTimeout(5 * 60 * 1000)
50-
51-
test('adds res.context.activeProducts array', async () => {
52-
const products = await getJSON('/en?json=activeProducts')
53-
expect(Array.isArray(products)).toBe(true)
54-
})
55-
56-
test('adds res.context.currentProduct string on homepage', async () => {
57-
const currentProduct = await getJSON('/en?json=currentProduct')
58-
expect(currentProduct).toBe('homepage')
59-
})
60-
61-
test('adds res.context.currentProduct object', async () => {
62-
const currentProduct = await getJSON(
63-
`/en/${nonEnterpriseDefaultVersion}/github?json=currentProduct`
64-
)
65-
expect(currentProduct).toBe('github')
66-
})
67-
})

tests/unit/versions.js

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import revalidator from 'revalidator'
33
import { allVersions } from '../../lib/all-versions.js'
44
import { latest } from '../../lib/enterprise-server-releases.js'
55
import schema from '../helpers/schemas/versions-schema.js'
6-
import { getJSON } from '../helpers/supertest.js'
76
import nonEnterpriseDefaultVersion from '../../lib/non-enterprise-default-version.js'
87

98
jest.useFakeTimers('legacy')
@@ -22,23 +21,3 @@ describe('versions module', () => {
2221
})
2322
})
2423
})
25-
26-
describe('versions middleware', () => {
27-
jest.setTimeout(5 * 60 * 1000)
28-
29-
test('adds res.context.allVersions object', async () => {
30-
const allVersionsFromMiddleware = await getJSON('/en?json=allVersions')
31-
expect(allVersionsFromMiddleware).toEqual(allVersions)
32-
})
33-
34-
test('adds res.context.currentVersion string', async () => {
35-
let currentVersion = await getJSON('/en?json=currentVersion')
36-
expect(currentVersion).toBe(nonEnterpriseDefaultVersion)
37-
38-
currentVersion = await getJSON(`/en/${nonEnterpriseDefaultVersion}?json=currentVersion`)
39-
expect(currentVersion).toBe(nonEnterpriseDefaultVersion)
40-
41-
currentVersion = await getJSON(`/en/enterprise-server@${latest}?json=currentVersion`)
42-
expect(currentVersion).toBe(`enterprise-server@${latest}`)
43-
})
44-
})

0 commit comments

Comments
 (0)