mirror of
https://github.com/public-transport/db-vendo-client.git
synced 2025-02-23 23:29:35 +02:00
57 lines
968 B
JavaScript
57 lines
968 B
JavaScript
'use strict'
|
|
|
|
const tap = require('tap')
|
|
const parse = require('../../parse/line')
|
|
|
|
const profile = {
|
|
products: [
|
|
{id: 'train', bitmasks: [1]},
|
|
{id: 'ferry', bitmasks: [2]},
|
|
{id: 'bus', bitmasks: [4, 8]}
|
|
]
|
|
}
|
|
const ctx = {
|
|
data: {},
|
|
opt: {},
|
|
profile
|
|
}
|
|
|
|
tap.test('parses lines correctly', (t) => {
|
|
const input = {
|
|
line: 'foo line',
|
|
prodCtx: {
|
|
lineId: 'Foo ',
|
|
num: 123
|
|
}
|
|
}
|
|
const expected = {
|
|
type: 'line',
|
|
id: 'foo',
|
|
fahrtNr: 123,
|
|
name: 'foo line',
|
|
public: true
|
|
}
|
|
|
|
t.same(parse(ctx, input), expected)
|
|
|
|
t.same(parse(ctx, {
|
|
...input, line: null, addName: input.line
|
|
}), expected)
|
|
t.same(parse(ctx, {
|
|
...input, line: null, name: input.line
|
|
}), expected)
|
|
|
|
// no prodCtx.lineId
|
|
t.same(parse(ctx, {
|
|
...input, prodCtx: {...input.prodCtx, lineId: null}
|
|
}), {
|
|
...expected, id: 'foo-line'
|
|
})
|
|
// no prodCtx
|
|
t.same(parse(ctx, {
|
|
...input, prodCtx: undefined
|
|
}), {
|
|
...expected, id: 'foo-line', fahrtNr: null
|
|
})
|
|
t.end()
|
|
})
|