Skip to content

Commit 0c91835

Browse files
committed
add tests
1 parent ee53f96 commit 0c91835

2 files changed

Lines changed: 30 additions & 2 deletions

File tree

tests/fixtures/article-with-learning-tracks.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,7 @@ learningTracks:
66
- track_1
77
- track_2
88
- non_existing_track
9+
- '{% if currentVersion == "free-pro-team@latest" %}dotcom_only_track{% endif %}'
10+
- '{% if currentVersion != "free-pro-team@latest" %}enterprise_only_track{% endif %}'
911
layout: product-sublanding
1012
---

tests/unit/page.js

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ const prerenderedObjects = require('../../lib/graphql/static/prerendered-objects
55
const allVersions = require('../../lib/all-versions')
66
const enterpriseServerReleases = require('../../lib/enterprise-server-releases')
77
const nonEnterpriseDefaultVersion = require('../../lib/non-enterprise-default-version')
8+
const { latest } = require('../../lib/enterprise-server-releases')
89

910
const getLinkData = require('../../lib/get-link-data')
1011
jest.mock('../../lib/get-link-data')
@@ -336,7 +337,13 @@ describe('Page class', () => {
336337
})
337338

338339
it('includes learning tracks specified in frontmatter', async () => {
339-
expect(page.learningTracks).toStrictEqual(['track_1', 'track_2', 'non_existing_track'])
340+
expect(page.learningTracks).toStrictEqual([
341+
'track_1',
342+
'track_2',
343+
'non_existing_track',
344+
'{% if currentVersion == "free-pro-team@latest" %}dotcom_only_track{% endif %}',
345+
'{% if currentVersion != "free-pro-team@latest" %}enterprise_only_track{% endif %}'
346+
])
340347
})
341348

342349
it('renders learning tracks that have been defined', async () => {
@@ -358,15 +365,34 @@ describe('Page class', () => {
358365
title: 'title',
359366
description: 'description',
360367
guides
368+
},
369+
dotcom_only_track: {
370+
title: 'title',
371+
description: 'description',
372+
guides
373+
},
374+
enterprise_only_track: {
375+
title: 'title',
376+
description: 'description',
377+
guides
361378
}
362379
}
363380
}
364381
}
365382
}
366383
}
367384
await page.render(context)
385+
// To actually render the guides in this test, we would have to load context.pages and context.redirects;
386+
// To avoid that we can just test that the function was called with the expected data.
368387
expect(getLinkData).toHaveBeenCalledWith(guides, context)
369-
expect(page.learningTracks).toHaveLength(2)
388+
expect(page.learningTracks).toHaveLength(3)
389+
expect(page.learningTracks.find(track => track.trackName === 'dotcom_only_track')).toBeTruthy()
390+
391+
// Test that Liquid versioning is respected
392+
context.currentVersion = `enterprise-server@${latest}`
393+
await page.render(context)
394+
expect(page.learningTracks.find(track => track.trackName === 'dotcom_only_track')).toBeFalsy()
395+
expect(page.learningTracks.find(track => track.trackName === 'enterprise_only_track')).toBeTruthy()
370396
})
371397
})
372398

0 commit comments

Comments
 (0)