mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-07 20:31:06 -05:00
e8c677f7ad
[web] add metric for blocked cdn GitOrigin-RevId: bee0fa5af0cc3c5d91deb64c8e32bb7e04dbcc2b
95 lines
3.3 KiB
JavaScript
95 lines
3.3 KiB
JavaScript
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
|
|
)
|
|
})
|
|
})
|
|
})
|