|
|
@@ -0,0 +1,95 @@
|
|
|
+const { expect } = require('chai')
|
|
|
+const User = require('./helpers/User').promises
|
|
|
+const {
|
|
|
+ promises: { getMetric },
|
|
|
+} = require('./helpers/metrics')
|
|
|
+
|
|
|
+describe('CDNMigration', function () {
|
|
|
+ let anon, user
|
|
|
+ beforeEach(async function () {
|
|
|
+ anon = new User()
|
|
|
+ user = new User()
|
|
|
+ await user.login()
|
|
|
+ })
|
|
|
+ let noCdnPreLogin, noCdnLoggedIn
|
|
|
+ let cdnBlockedTruePreLogin, cdnBlockedTrueLoggedIn
|
|
|
+ let cdnBlockedFalsePreLogin, cdnBlockedFalseLoggedIn
|
|
|
+
|
|
|
+ async function getNoCdn(path) {
|
|
|
+ return await getMetric(
|
|
|
+ line => line.includes('no_cdn') && line.includes(path)
|
|
|
+ )
|
|
|
+ }
|
|
|
+ async function getCdnBlocked(path, method) {
|
|
|
+ return await getMetric(
|
|
|
+ line =>
|
|
|
+ line.includes('cdn_blocked') &&
|
|
|
+ line.includes(`path="${path}"`) &&
|
|
|
+ line.includes(`method="${method}"`)
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
+ beforeEach(async function () {
|
|
|
+ noCdnPreLogin = await getNoCdn('pre-login')
|
|
|
+ noCdnLoggedIn = await getNoCdn('logged-in')
|
|
|
+ cdnBlockedTruePreLogin = await getCdnBlocked('pre-login', 'true')
|
|
|
+ cdnBlockedTrueLoggedIn = await getCdnBlocked('logged-in', 'true')
|
|
|
+ cdnBlockedFalsePreLogin = await getCdnBlocked('pre-login', 'false')
|
|
|
+ cdnBlockedFalseLoggedIn = await getCdnBlocked('logged-in', 'false')
|
|
|
+ })
|
|
|
+
|
|
|
+ describe('pre-login', function () {
|
|
|
+ it('should collect no_cdn', async function () {
|
|
|
+ await anon.doRequest('GET', '/login?nocdn=true')
|
|
|
+ expect(await getNoCdn('pre-login')).to.equal(noCdnPreLogin + 1)
|
|
|
+ })
|
|
|
+ it('should collect cdn_blocked', async function () {
|
|
|
+ await anon.doRequest('GET', '/login')
|
|
|
+ await anon.doRequest('GET', '/login')
|
|
|
+ await anon.doRequest('GET', '/login')
|
|
|
+ expect(await getCdnBlocked('pre-login', 'false')).to.equal(
|
|
|
+ cdnBlockedFalsePreLogin + 3
|
|
|
+ )
|
|
|
+ expect(await getCdnBlocked('pre-login', 'true')).to.equal(
|
|
|
+ cdnBlockedTruePreLogin
|
|
|
+ )
|
|
|
+ })
|
|
|
+ it('should collect cdn_blocked after nocdn', async function () {
|
|
|
+ await anon.doRequest('GET', '/login?nocdn=true')
|
|
|
+ await anon.doRequest('GET', '/login')
|
|
|
+ expect(await getCdnBlocked('pre-login', 'false')).to.equal(
|
|
|
+ cdnBlockedFalsePreLogin
|
|
|
+ )
|
|
|
+ expect(await getCdnBlocked('pre-login', 'true')).to.equal(
|
|
|
+ cdnBlockedTruePreLogin + 2
|
|
|
+ )
|
|
|
+ })
|
|
|
+ })
|
|
|
+ describe('logged-in', function () {
|
|
|
+ it('should collect no_cdn', async function () {
|
|
|
+ await user.doRequest('GET', '/project?nocdn=true')
|
|
|
+ expect(await getNoCdn('logged-in')).to.equal(noCdnLoggedIn + 1)
|
|
|
+ })
|
|
|
+ it('should collect cdn_blocked=false before nocdn', async function () {
|
|
|
+ await user.doRequest('GET', '/project')
|
|
|
+ await user.doRequest('GET', '/project')
|
|
|
+ await user.doRequest('GET', '/project')
|
|
|
+ expect(await getCdnBlocked('logged-in', 'false')).to.equal(
|
|
|
+ cdnBlockedFalseLoggedIn + 3
|
|
|
+ )
|
|
|
+ expect(await getCdnBlocked('logged-in', 'true')).to.equal(
|
|
|
+ cdnBlockedTrueLoggedIn
|
|
|
+ )
|
|
|
+ })
|
|
|
+ it('should collect cdn_blocked=true after nocdn=true', async function () {
|
|
|
+ await user.doRequest('GET', '/project?nocdn=true')
|
|
|
+ await user.doRequest('GET', '/project')
|
|
|
+ expect(await getCdnBlocked('logged-in', 'false')).to.equal(
|
|
|
+ cdnBlockedFalseLoggedIn
|
|
|
+ )
|
|
|
+ expect(await getCdnBlocked('logged-in', 'true')).to.equal(
|
|
|
+ cdnBlockedTrueLoggedIn + 2
|
|
|
+ )
|
|
|
+ })
|
|
|
+ })
|
|
|
+})
|