@@ -5,6 +5,7 @@ const prerenderedObjects = require('../../lib/graphql/static/prerendered-objects
55const allVersions = require ( '../../lib/all-versions' )
66const enterpriseServerReleases = require ( '../../lib/enterprise-server-releases' )
77const nonEnterpriseDefaultVersion = require ( '../../lib/non-enterprise-default-version' )
8+ const { latest } = require ( '../../lib/enterprise-server-releases' )
89
910const getLinkData = require ( '../../lib/get-link-data' )
1011jest . 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,35 @@ 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 ) . toHaveLength ( 3 )
395+ expect ( page . learningTracks . find ( track => track . trackName === 'dotcom_only_track' ) ) . toBeFalsy ( )
396+ expect ( page . learningTracks . find ( track => track . trackName === 'enterprise_only_track' ) ) . toBeTruthy ( )
370397 } )
371398 } )
372399
0 commit comments