codecombat/spec/server/functional/campaigns.spec.coffee

38 lines
1.5 KiB
CoffeeScript

config = require '../../../server_config'
require '../common'
clientUtils = require '../../../app/core/utils' # Must come after require /common
utils = require '../utils'
_ = require 'lodash'
Promise = require 'bluebird'
request = require '../request'
requestAsync = Promise.promisify(request, {multiArgs: true})
campaignURL = getURL('/db/campaign')
Campaign = require '../../../server/models/Campaign'
describe '/db/campaign', ->
beforeEach utils.wrap (done) ->
yield utils.clearModels([Campaign])
@heroCampaign1 = yield new Campaign({name: 'Hero Campaign 1', type: 'hero'}).save()
@heroCampaign2 = yield new Campaign({name: 'Hero Campaign 2', type: 'hero'}).save()
@courseCampaign1 = yield new Campaign({name: 'Course Campaign 1', type: 'course'}).save()
@courseCampaign2 = yield new Campaign({name: 'Course Campaign 2', type: 'course'}).save()
done()
describe 'GET campaigns of a certain type', ->
it 'returns only that type', utils.wrap (done) ->
[res, body] = yield request.getAsync getURL('/db/campaign?type=course'), { json: true }
expect(res.statusCode).toBe(200)
expect(body.length).toBe(2)
for campaign in body
expect(campaign.type).toBe('course')
done()
describe 'GET all campaigns', ->
it 'returns all of them regardless of type', utils.wrap (done) ->
[res, body] = yield request.getAsync getURL('/db/campaign'), { json: true }
expect(res.statusCode).toBe(200)
expect(body.length).toBe(4)
done()