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

learning-tracks.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
53
54
55
56
57
58
59
60
61
62
  1. const { getDOM } = require('../helpers/supertest')
  2. jest.setTimeout(3 * 60 * 1000)
  3. describe('learning tracks', () => {
  4. test('render first track as feature track', async () => {
  5. const $ = await getDOM('/en/actions/guides')
  6. expect($('.feature-track')).toHaveLength(1)
  7. const href = $('.feature-track li a').first().attr('href')
  8. const found = href.match(/.*\?learn=(.*)/i)
  9. expect(found).not.toBeNull()
  10. const trackName = found[1]
  11. // check all the links contain track name
  12. $('.feature-track li a').each((i, elem) => {
  13. expect($(elem).attr('href')).toEqual(expect.stringContaining(`?learn=${trackName}`))
  14. })
  15. })
  16. test('render other tracks', async () => {
  17. const $ = await getDOM('/en/actions/guides')
  18. expect($('.learning-track').length).toBeGreaterThanOrEqual(4)
  19. $('.learning-track').each((i, trackElem) => {
  20. const href = $(trackElem).find('.Box-header a').first().attr('href')
  21. const found = href.match(/.*\?learn=(.*)/i)
  22. expect(found).not.toBeNull()
  23. const trackName = found[1]
  24. // check all the links contain track name
  25. $(trackElem).find('a.Box-row').each((i, elem) => {
  26. expect($(elem).attr('href')).toEqual(expect.stringContaining(`?learn=${trackName}`))
  27. })
  28. })
  29. })
  30. })
  31. describe('navigation banner', () => {
  32. test('render navigation banner when url includes correct learning track name', async () => {
  33. const $ = await getDOM('/en/actions/guides/setting-up-continuous-integration-using-workflow-templates?learn=continuous_integration')
  34. expect($('.learning-track-nav')).toHaveLength(1)
  35. const $navLinks = $('.learning-track-nav a')
  36. expect($navLinks).toHaveLength(2)
  37. $navLinks.each((i, elem) => {
  38. expect($(elem).attr('href')).toEqual(expect.stringContaining('?learn=continuous_integration'))
  39. })
  40. })
  41. test('does not include banner when url does not include `learn` param', async () => {
  42. const $ = await getDOM('/en/actions/guides/setting-up-continuous-integration-using-workflow-templates')
  43. expect($('.learning-track-nav')).toHaveLength(0)
  44. })
  45. test('does not include banner when url has incorrect `learn` param', async () => {
  46. const $ = await getDOM('/en/actions/guides/setting-up-continuous-integration-using-workflow-templates?learn=not_real')
  47. expect($('.learning-track-nav')).toHaveLength(0)
  48. })
  49. test('does not include banner when url is not part of the learning track', async () => {
  50. const $ = await getDOM('/en/actions/learn-github-actions/introduction-to-github-actions?learn=continuous_integration')
  51. expect($('.learning-track-nav')).toHaveLength(0)
  52. })
  53. })
Tip!

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

Comments

Loading...