CDNMigrationTests.mjs 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. import { expect } from 'chai'
  2. import UserHelper from './helpers/User.mjs'
  3. import MetricsHelper from './helpers/metrics.mjs'
  4. const User = UserHelper.promises
  5. const getMetric = MetricsHelper.promises.getMetric
  6. describe('CDNMigration', function () {
  7. let anon, user
  8. beforeEach(async function () {
  9. anon = new User()
  10. user = new User()
  11. await user.login()
  12. })
  13. let noCdnPreLogin, noCdnLoggedIn
  14. let cdnBlockedTruePreLogin, cdnBlockedTrueLoggedIn
  15. let cdnBlockedFalsePreLogin, cdnBlockedFalseLoggedIn
  16. async function getNoCdn(path) {
  17. return await getMetric(
  18. line => line.includes('no_cdn') && line.includes(path)
  19. )
  20. }
  21. async function getCdnBlocked(path, method) {
  22. return await getMetric(
  23. line =>
  24. line.includes('cdn_blocked') &&
  25. line.includes(`path="${path}"`) &&
  26. line.includes(`method="${method}"`)
  27. )
  28. }
  29. beforeEach(async function () {
  30. noCdnPreLogin = await getNoCdn('pre-login')
  31. noCdnLoggedIn = await getNoCdn('logged-in')
  32. cdnBlockedTruePreLogin = await getCdnBlocked('pre-login', 'true')
  33. cdnBlockedTrueLoggedIn = await getCdnBlocked('logged-in', 'true')
  34. cdnBlockedFalsePreLogin = await getCdnBlocked('pre-login', 'false')
  35. cdnBlockedFalseLoggedIn = await getCdnBlocked('logged-in', 'false')
  36. })
  37. describe('pre-login', function () {
  38. it('should collect no_cdn', async function () {
  39. await anon.doRequest('GET', '/login?nocdn=true')
  40. expect(await getNoCdn('pre-login')).to.equal(noCdnPreLogin + 1)
  41. })
  42. it('should collect cdn_blocked', async function () {
  43. await anon.doRequest('GET', '/login')
  44. await anon.doRequest('GET', '/login')
  45. await anon.doRequest('GET', '/login')
  46. expect(await getCdnBlocked('pre-login', 'false')).to.equal(
  47. cdnBlockedFalsePreLogin + 3
  48. )
  49. expect(await getCdnBlocked('pre-login', 'true')).to.equal(
  50. cdnBlockedTruePreLogin
  51. )
  52. })
  53. it('should collect cdn_blocked after nocdn', async function () {
  54. await anon.doRequest('GET', '/login?nocdn=true')
  55. await anon.doRequest('GET', '/login')
  56. expect(await getCdnBlocked('pre-login', 'false')).to.equal(
  57. cdnBlockedFalsePreLogin
  58. )
  59. expect(await getCdnBlocked('pre-login', 'true')).to.equal(
  60. cdnBlockedTruePreLogin + 2
  61. )
  62. })
  63. })
  64. describe('logged-in', function () {
  65. it('should collect no_cdn', async function () {
  66. await user.doRequest('GET', '/project?nocdn=true')
  67. expect(await getNoCdn('logged-in')).to.equal(noCdnLoggedIn + 1)
  68. })
  69. it('should collect cdn_blocked=false before nocdn', async function () {
  70. await user.doRequest('GET', '/project')
  71. await user.doRequest('GET', '/project')
  72. await user.doRequest('GET', '/project')
  73. expect(await getCdnBlocked('logged-in', 'false')).to.equal(
  74. cdnBlockedFalseLoggedIn + 3
  75. )
  76. expect(await getCdnBlocked('logged-in', 'true')).to.equal(
  77. cdnBlockedTrueLoggedIn
  78. )
  79. })
  80. it('should collect cdn_blocked=true after nocdn=true', async function () {
  81. await user.doRequest('GET', '/project?nocdn=true')
  82. await user.doRequest('GET', '/project')
  83. expect(await getCdnBlocked('logged-in', 'false')).to.equal(
  84. cdnBlockedFalseLoggedIn
  85. )
  86. expect(await getCdnBlocked('logged-in', 'true')).to.equal(
  87. cdnBlockedTrueLoggedIn + 2
  88. )
  89. })
  90. })
  91. })