-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtests.js
79 lines (64 loc) · 2.89 KB
/
tests.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
const test = require("tape")
const request = require("supertest")
const {server, clearVisits} = require("./server.js")
test("Lookup by visit", async t => {
clearVisits()
let visitId = null
await request(server).post("/visit").send({ userId: "user1", name: "McDonald's" })
.set('Accept', 'application/json').expect('Content-Type', /json/)
.expect(201).expect(res => {
t.equal(typeof res.body.visitId, 'string')
visitId = res.body.visitId
})
await request(server).get(`/visit?visitId=${visitId}`)
.set('Accept', 'application/json').expect('Content-Type', /json/)
.expect(200, [{ userId: "user1", name: "McDonald's", visitId }])
t.end()
})
test("Lookup by userId and searchString", async t => {
clearVisits()
let visitIds = {}
await Promise.all([
request(server).post("/visit").send({ userId: "user1", name: "Arby's" }),
request(server).post("/visit").send({ userId: "user1", name: "Danny's" }),
request(server).post("/visit").send({ userId: "user1", name: "Wandy's" }),
request(server).post("/visit").send({ userId: "user1", name: "McDonald's" }),
request(server).post("/visit").send({ userId: "user1", name: "Friandly's" }),
request(server).post("/visit").send({ userId: "user1", name: "Carl's JR" }),
]).then(([arby, denny, wendy, mcd, friendly, carl]) => {
visitIds.arby = arby.body.visitId
visitIds.denny = denny.body.visitId
visitIds.wendy = wendy.body.visitId
visitIds.mcd = mcd.body.visitId
visitIds.friendly = friendly.body.visitId
visitIds.carl = carl.body.visitId
})
await request(server).get(`/visit?userId=user1&searchString=a`)
.set('Accept', 'application/json').expect('Content-Type', /json/)
.expect(200, [
{ userId: "user1", name: "Danny's", visitId: visitIds.denny },
{ userId: "user1", name: "Wandy's", visitId: visitIds.wendy },
{ userId: "user1", name: "McDonald's", visitId: visitIds.mcd },
{ userId: "user1", name: "Friandly's", visitId: visitIds.friendly },
{ userId: "user1", name: "Carl's JR", visitId: visitIds.carl },
// { userId: "user1", name: "Arby's", visitId: visitIds.arby },
])
await request(server).get(`/visit?userId=user1&searchString=dy`)
.set('Accept', 'application/json').expect('Content-Type', /json/)
.expect(200, [
{ userId: "user1", name: "Wandy's", visitId: visitIds.wendy },
{ userId: "user1", name: "Danny's", visitId: visitIds.denny },
{ userId: "user1", name: "Friandly's", visitId: visitIds.friendly },
])
await request(server).get(`/visit?userId=user1&searchString=x`)
.set('Accept', 'application/json').expect('Content-Type', /json/)
.expect(200, "")
t.end()
})
test("Lookup by userId and searchString", async t => {
clearVisits()
await request(server).get(`/visit?searchString=x`)
.set('Accept', 'application/json').expect('Content-Type', /json/)
.expect(400, ["Must specify visitId or both userId and searchString"])
t.end()
})