Files
overleaf-cep/services/web/test/acceptance/src/AdminEmailTests.js
Jakob Ackermann 1ae5c2c2f1 Merge pull request #14530 from overleaf/jpa-check-response-status
[web] check response status code in acceptance tests

GitOrigin-RevId: 119a13f03bb3f1e8bb39340c36a9f2b0649b2bba
2023-08-29 08:04:11 +00:00

65 lines
1.8 KiB
JavaScript

const OError = require('@overleaf/o-error')
const { expect } = require('chai')
const async = require('async')
const User = require('./helpers/User')
describe('AdminEmails', function () {
beforeEach(function (done) {
this.timeout(5000)
done()
})
describe('an admin with an invalid email address', function () {
before(function (done) {
this.badUser = new User({ email: 'alice@evil.com' })
async.series(
[
cb => this.badUser.ensureUserExists(cb),
cb => this.badUser.ensureAdmin(cb),
],
done
)
})
it('should block the user', function (done) {
this.badUser.login(err => {
// User.login refreshes the csrf token after login.
// Seeing the csrf token request fail "after login" indicates a successful login.
expect(OError.getFullStack(err)).to.match(/TaggedError: after login/)
expect(OError.getFullStack(err)).to.match(
/get csrf token failed: status=500 /
)
this.badUser.getProjectListPage((err, statusCode) => {
expect(err).to.not.exist
expect(statusCode).to.equal(500)
done()
})
})
})
})
describe('an admin with a valid email address', function () {
before(function (done) {
this.goodUser = new User({ email: 'alice@example.com' })
async.series(
[
cb => this.goodUser.ensureUserExists(cb),
cb => this.goodUser.ensureAdmin(cb),
],
done
)
})
it('should not block the user', function (done) {
this.goodUser.login(err => {
expect(err).to.not.exist
this.goodUser.getProjectListPage((err, statusCode) => {
expect(err).to.not.exist
expect(statusCode).to.equal(200)
done()
})
})
})
})
})