db-rest/test/index.js
2022-11-22 16:01:29 +01:00

81 lines
2 KiB
JavaScript

'use strict'
const tape = require('tape')
const {loyaltyCards} = require('../lib/loyalty-cards')
const {fetchWithTestApi} = require('./util')
const NO_JOURNEYS = {
// todo?
journeys: [],
}
tape.test('/journeys?firstClass works', async (t) => {
await fetchWithTestApi({
journeys: async (from, to, opt = {}) => {
t.equal(opt.firstClass, true, 'journeys() called with invalid opt.firstClass')
return NO_JOURNEYS
}
}, {}, '/journeys?from=123&to=234&firstClass=true')
})
tape.test('/journeys?loyaltyCard works', async (t) => {
await fetchWithTestApi({
journeys: async (from, to, opt = {}) => {
t.deepEqual(opt.loyaltyCard, {
type: loyaltyCards.SHCARD,
}, 'journeys() called with invalid opt.loyaltyCard')
return NO_JOURNEYS
}
}, {}, '/journeys?from=123&to=234&loyaltyCard=shcard')
await fetchWithTestApi({
journeys: async (from, to, opt = {}) => {
t.deepEqual(opt.loyaltyCard, {
type: loyaltyCards.BAHNCARD,
discount: 50,
class: 2,
}, 'journeys() called with invalid opt.loyaltyCard')
return NO_JOURNEYS
}
}, {}, '/journeys?from=123&to=234&loyaltyCard=bahncard-2nd-50')
})
tape.test('/stations works', async (t) => {
{
const {headers} = await fetchWithTestApi({}, {}, '/stations', {
headers: {
'accept': 'application/json',
},
})
t.equal(headers['content-type'], 'application/json')
}
{
const {headers} = await fetchWithTestApi({}, {}, '/stations', {
headers: {
'accept': 'application/x-ndjson',
},
})
t.equal(headers['content-type'], 'application/x-ndjson')
}
})
tape.test('/stations?query=frankf works', async (t) => {
{
const {headers} = await fetchWithTestApi({}, {}, '/stations?query=frankf', {
headers: {
'accept': 'application/json',
},
})
t.equal(headers['content-type'], 'application/json')
}
{
const {headers} = await fetchWithTestApi({}, {}, '/stations?query=frankf', {
headers: {
'accept': 'application/x-ndjson',
},
})
t.equal(headers['content-type'], 'application/x-ndjson')
}
})