[web] Tighten check for spelling language (#19297)

* [web] Tighten check for spelling language

* spelling proxy only for `/check` requests

GitOrigin-RevId: c678e93cca9ad39682ec7ce6e49804ea74741acc
This commit is contained in:
Miguel Serrano
2024-07-15 09:01:45 +00:00
committed by Copybot
parent 2dae2780c1
commit b5e5d39c3a
3 changed files with 33 additions and 72 deletions
@@ -56,12 +56,12 @@ describe('SpellingController', function () {
this.res = new MockResponse()
})
describe('proxyRequestToSpellingApi', function () {
describe('proxyCheckRequestToSpellingApi', function () {
describe('on successful call', function () {
beforeEach(function () {
this.req.session.user._id = this.userId = 'user-id-123'
this.req.body = { language: 'en', words: ['blab'] }
this.controller.proxyRequestToSpellingApi(this.req, this.res)
this.controller.proxyCheckRequestToSpellingApi(this.req, this.res)
})
it('should send a request to the spelling host', function () {
@@ -89,35 +89,19 @@ describe('SpellingController', function () {
beforeEach(function () {
this.req.session.user._id = this.userId = 'user-id-123'
this.req.body = { language: 'fi', words: ['blab'] }
this.controller.proxyCheckRequestToSpellingApi(this.req, this.res)
})
describe('when the request is a check request', function () {
beforeEach(function () {
this.controller.proxyRequestToSpellingApi(this.req, this.res)
})
it('should not send a request to the spelling host', function () {
this.request.called.should.equal(false)
})
it('should return an empty misspellings array', function () {
this.res.json.calledWith({ misspellings: [] }).should.equal(true)
})
it('should return a 422 status', function () {
this.res.status.calledWith(422).should.equal(true)
})
it('should not send a request to the spelling host', function () {
this.request.called.should.equal(false)
})
describe('when the request is not a check request', function () {
beforeEach(function () {
this.req.url = '/spelling/learn'
this.controller.proxyRequestToSpellingApi(this.req, this.res)
})
it('should return an empty misspellings array', function () {
this.res.json.calledWith({ misspellings: [] }).should.equal(true)
})
it('should send a request to the spelling host', function () {
this.request.called.should.equal(true)
})
it('should return a 422 status', function () {
this.res.status.calledWith(422).should.equal(true)
})
})
@@ -125,35 +109,19 @@ describe('SpellingController', function () {
beforeEach(function () {
this.req.session.user._id = this.userId = 'user-id-123'
this.req.body = { words: ['blab'] }
this.controller.proxyCheckRequestToSpellingApi(this.req, this.res)
})
describe('when the request is a check request', function () {
beforeEach(function () {
this.controller.proxyRequestToSpellingApi(this.req, this.res)
})
it('should not send a request to the spelling host', function () {
this.request.called.should.equal(false)
})
it('should return an empty misspellings array', function () {
this.res.json.calledWith({ misspellings: [] }).should.equal(true)
})
it('should return a 422 status', function () {
this.res.status.calledWith(422).should.equal(true)
})
it('should not send a request to the spelling host', function () {
this.request.called.should.equal(false)
})
describe('when the request is not a check request', function () {
beforeEach(function () {
this.req.url = '/spelling/learn'
this.controller.proxyRequestToSpellingApi(this.req, this.res)
})
it('should return an empty misspellings array', function () {
this.res.json.calledWith({ misspellings: [] }).should.equal(true)
})
it('should send a request to the spelling host', function () {
this.request.called.should.equal(true)
})
it('should return a 422 status', function () {
this.res.status.calledWith(422).should.equal(true)
})
})
})