Created
May 29, 2020 13:35
-
-
Save ravirajawasthi/0e1a596f4f265df6507862a42e611f52 to your computer and use it in GitHub Desktop.
test file
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import request from 'supertest'; | |
import app from '../../app'; | |
import { Ticket } from '../../models/tickets'; | |
it('has a route handles listening to /api/tickets for post requests', async () => { | |
const response = await request(app).post('/api/tickets').send({}); | |
expect(response.status).not.toEqual(404); | |
}); | |
it('Only a signed in user can access, should get a 401 response', async () => { | |
const response = await request(app).post('/api/tickets').send({}); | |
expect(response.status).toEqual(401); | |
}); | |
it('returns status other than 401 when user is logged in', async () => { | |
const response = await request(app) | |
.post('/api/tickets') | |
.set('Cookie', global.getFakeSigninCookie()) | |
.send({}); | |
expect(response.status).not.toEqual(401); | |
}); | |
it('Error if invalid ticket title is provided', async () => { | |
let response = await request(app) | |
.post('/api/tickets') | |
.set('Cookie', global.getFakeSigninCookie()) | |
.send({ | |
title: '', | |
price: 10, | |
}); | |
expect(response.status).toEqual(400); | |
response = await request(app) | |
.post('/api/tickets') | |
.set('Cookie', global.getFakeSigninCookie()) | |
.send({ | |
price: 10, | |
}); | |
expect(response.status).toEqual(400); | |
}); | |
it('Error if invalid ticket price is provided', async () => { | |
let response = await request(app) | |
.post('/api/tickets') | |
.set('Cookie', global.getFakeSigninCookie()) | |
.send({ | |
title: 'ssd', | |
price: -10, | |
}); | |
expect(response.status).toEqual(400); | |
response = await request(app) | |
.post('/api/tickets') | |
.set('Cookie', global.getFakeSigninCookie()) | |
.send({ | |
title: 'random', | |
}); | |
expect(response.status).toEqual(400); | |
}); | |
it('Creates ticket with valid input', async () => { | |
const fakeTicketTitle = 'ramdom Ticket title🤦♂️'; | |
const fakeTicketPrice = Math.random() * 200 + 1; | |
let tickets = await Ticket.find({}); | |
expect(tickets.length).toEqual(0); | |
const response = await request(app) | |
.post('/api/tickets') | |
.set('Cookie', global.getFakeSigninCookie()) | |
.send({ price: fakeTicketPrice, title: fakeTicketTitle }) | |
.expect(201); | |
tickets = await Ticket.find({}); | |
expect(tickets.length).toEqual(1); | |
const createdTicket = tickets[0]; | |
expect(createdTicket.price).toEqual(fakeTicketPrice); | |
expect(createdTicket.title).toEqual(fakeTicketTitle); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment