it('search audit logs - unexpected field', async () => { const response = await chai.request(app) .get(basePath) .set('Authorization', `Bearer ${config.ADMIN_TOKEN}`) .query({ other: 123 }) should.equal(response.status, 400) should.equal(response.body.message, '"other" is not allowed') })
it('fully update challenge - invalid prize', async () => { const challengeData = _.cloneDeep(testChallengeData) challengeData.prizeSets[0].prizes[0].value = -1 const response = await chai.request(app) .put(`${basePath}/${id}`) .set('Authorization', `Bearer ${config.ADMIN_TOKEN}`) .send(challengeData) should.equal(response.status, 400) should.equal(response.body.message, '"value" must be larger than or equal to 0') })
it('fully update challenge - project not found', async () => { const challengeData = _.cloneDeep(testChallengeData) challengeData.projectId = 100000 const response = await chai.request(app) .put(`${basePath}/${id}`) .set('Authorization', `Bearer ${config.ADMIN_TOKEN}`) .send(challengeData) should.equal(response.status, 400) should.equal(response.body.message, `Project with id: ${challengeData.projectId} doesn't exist`) })
it('partially update challenge - Completed to Active status', async () => { const response = await chai.request(app) .patch(`${basePath}/${id2}`) .set('Authorization', `Bearer ${config.ADMIN_TOKEN}`) .send({ status: constants.challengeStatuses.Active }) should.equal(response.status, 400) should.equal(response.body.message, 'Cannot change Completed challenge status to Active status') })
it('partially update challenge - empty winners', async () => { const response = await chai.request(app) .patch(`${basePath}/${id2}`) .set('Authorization', `Bearer ${config.ADMIN_TOKEN}`) .send({ winners: [] }) should.equal(response.status, 400) should.equal(response.body.message, '"winners" must contain at least 1 items') })
it(`fully update challenge - user doesn't have permission to update challenge under specific project`, async () => { const challengeData = _.cloneDeep(testChallengeData) challengeData.projectId = 200 const response = await chai.request(app) .put(`${basePath}/${id}`) .set('Authorization', `Bearer ${config.ADMIN_TOKEN}`) .send(challengeData) should.equal(response.status, 403) should.equal(response.body.message, 'You do not have permissions to perform this action') })
it('search challenges - invalid page', async () => { const response = await chai.request(app) .get(basePath) .set('Authorization', `Bearer ${config.ADMIN_TOKEN}`) .query({ page: -1 }) should.equal(response.status, 400) should.equal(response.body.message, '"page" must be larger than or equal to 1') })
it('search challenges - invalid typeId', async () => { const response = await chai.request(app) .get(basePath) .set('Authorization', `Bearer ${config.ADMIN_TOKEN}`) .query({ typeId: 'abc' }) should.equal(response.status, 400) should.equal(response.body.message, '"typeId" must be a valid GUID') })
it('search challenges - invalid projectId', async () => { const response = await chai.request(app) .get(basePath) .set('Authorization', `Bearer ${config.ADMIN_TOKEN}`) .query({ projectId: -1 }) should.equal(response.status, 400) should.equal(response.body.message, '"projectId" must be a positive number') })
it('search challenges - invalid forumId', async () => { const response = await chai.request(app) .get(basePath) .set('Authorization', `Bearer ${config.ADMIN_TOKEN}`) .query({ forumId: -1 }) should.equal(response.status, 400) should.equal(response.body.message, '"forumId" must be a positive number') })
it('fully update challenge - set winners with non-completed Active status', async () => { const challengeData = _.cloneDeep(testChallengeData) challengeData.winners = winners const response = await chai.request(app) .put(`${basePath}/${id}`) .set('Authorization', `Bearer ${config.ADMIN_TOKEN}`) .send(challengeData) should.equal(response.status, 400) should.equal(response.body.message, 'Cannot set winners for challenge with non-completed Active status') })
it('partially update challenge type - invalid abbreviation', async () => { const response = await chai.request(app) .patch(`${basePath}/${id}`) .set('Authorization', `Bearer ${config.ADMIN_TOKEN}`) .send({ abbreviation: { invalid: 123 } }) should.equal(response.status, 400) should.equal(response.body.message, '"abbreviation" must be a string') })
it('partially update phase - not found', async () => { const response = await chai.request(app) .patch(`${basePath}/${notFoundId}`) .set('Authorization', `Bearer ${config.ADMIN_TOKEN}`) .send({ name: 'testing2' }) should.equal(response.status, 404) should.equal(response.body.message, `Phase with id: ${notFoundId} doesn't exist`) })
it('partially update timeline template - null name', async () => { const response = await chai.request(app) .patch(`${basePath}/${id}`) .set('Authorization', `Bearer ${config.ADMIN_TOKEN}`) .send({ name: null }) should.equal(response.status, 400) should.equal(response.body.message, '"name" must be a string') })
it('search audit logs - invalid page', async () => { const response = await chai.request(app) .get(basePath) .set('Authorization', `Bearer ${config.ADMIN_TOKEN}`) .query({ page: -1 }) should.equal(response.status, 400) should.equal(response.body.message, '"page" must be larger than or equal to 1') })