UNPKG

2.6 kBJavaScriptView Raw
1const test = require('ava')
2const _ = require('lodash')
3const errors = require('../src/errors')
4const { setup } = require('./_helpers')
5
6test('adjust the default entries per page', async (t) => {
7 const { server } = await setup({ perPage: 3 })
8 const { result } = await server.inject('/')
9
10 t.is(result.result.length, 3)
11 t.is(result.total, 9)
12 t.is(result.per_page, 3)
13 t.is(result.page, 1)
14 t.deepEqual(_.keys(result._links).sort(), ['self', 'first', 'last', 'next'].sort())
15})
16
17test('adjust the default entries per page | 1000', async (t) => {
18 const { server } = await setup({ perPage: 1000 })
19 const { result } = await server.inject('/')
20
21 t.is(result.statusCode, 400)
22 t.is(result.message, errors.invalidOptions)
23})
24
25test('adjust the default entries per page | 0', async (t) => {
26 const { server } = await setup({ perPage: 0 })
27 const { result } = await server.inject('/')
28
29 t.is(result.statusCode, 400)
30 t.is(result.message, errors.invalidOptions)
31})
32
33test('adjust the total option', async (t) => {
34 const { server } = await setup({ total: 5 })
35 const { result } = await server.inject('/?page=2&per_page=2')
36
37 t.is(result.result.length, 9)
38 t.is(result.total, 5)
39 t.is(result.per_page, 2)
40 t.is(result.page, 2)
41 t.is(result._links.last.href, '/?page=3&per_page=2')
42})
43
44test('adjust the total option | -1', async (t) => {
45 const { server } = await setup({ total: -1 })
46 const { result } = await server.inject('/')
47
48 t.is(result.statusCode, 400)
49 t.is(result.message, errors.invalidOptions)
50})
51
52test('adjust the total option | \'foo\'', async (t) => {
53 const { server } = await setup({ total: 'foo' })
54 const { result } = await server.inject('/?page=2&per_page=2')
55
56 t.is(result.statusCode, 400)
57 t.is(result.message, errors.invalidOptions)
58})
59
60test('adjust the default access key', async (t) => {
61 const { server } = await setup({ key: 'foo' })
62 const { result } = await server.inject('/')
63
64 t.is(result.foo.length, 9)
65 t.is(result.total, 9)
66 t.is(result.per_page, 100)
67 t.is(result.page, 1)
68 t.deepEqual(_.keys(result._links).sort(), ['self', 'first', 'last'].sort())
69})
70
71test('adjust the default access key | 0', async (t) => {
72 const { server } = await setup({ key: 0 })
73 const { result } = await server.inject('/')
74
75 t.is(result.statusCode, 400)
76 t.is(result.message, errors.invalidOptions)
77})
78
79test('adjust the default entries per page | undefined', async (t) => {
80 const { server } = await setup({ key: undefined })
81 const { result } = await server.inject('/')
82
83 t.is(result.statusCode, 400)
84 t.is(result.message, errors.invalidOptions)
85})