document-templates
Version:
Templates for document generation
82 lines (70 loc) • 2.58 kB
JavaScript
const test = require('ava')
const getTemplate = require('../../index')
const templates = require('../../templates/avtaler.json')
const expectedData = {
file: 'elevpc.docx',
name: 'Avtale om leie-PC fra Vestfold og Telemark fylkeskommune',
dueDays: 150,
dueDate: false,
expireDate: false,
expireDays: false,
requireDigitalSignature: true,
requireGuardianSignature: true,
requireGuardianConsent: true,
dropManualDistribution: false,
archive: {
Category: 'Dokument ut',
SignOff: true,
AccessCode: '13',
Paragraph: 'Offl. § 13 jf. fvl. § 13 (1) nr.1',
NoarkClassificationCode: 'B31',
Status: 'J',
Title: 'Avtale om leie-PC fra Vestfold og Telemark fylkeskommune'
},
distribution: {
kunDigitalLevering: true,
lenker: [
{
ledetekst: 'Mer informasjon:',
urlLenke: 'https://www.telemark.no/Vaare-tjenester/Utdanning/For-elever/PC-i-skolen',
urlTekst: 'PC i skolen'
},
{
ledetekst: 'Se også:',
urlLenke: 'https://www.telemark.no/Vaare-tjenester/Utdanning/For-elever/PC-i-skolen/Artikler/Leie-PC',
urlTekst: 'Leie-PC'
}
]
},
agreementService: {
serviceUrl: 'https://avtaler.api.service.t-fk.no/agreements'
}
}
test('It returns data if template exists', t => {
Object.keys(templates).forEach(template => t.truthy(getTemplate({ domain: 'avtaler', templateId: template })))
})
test('It returns expected metadata', t => {
const template = getTemplate({ domain: 'avtaler', templateId: 'elevpc' })
delete template.filePath
t.deepEqual(expectedData, template, 'Data OK')
})
test('Requires input - options object', t => {
const error = t.throws(() => getTemplate())
t.is(error.message, 'Missing required input: options object')
})
test('Requires input - options.domain', t => {
const error = t.throws(() => getTemplate({}))
t.is(error.message, 'Missing required input: options.domain')
})
test('Requires input - options.templateId', t => {
const error = t.throws(() => getTemplate({ domain: 'avtaler' }))
t.is(error.message, 'Missing required input: options.templateId')
})
test('Throws if domain does not exist', t => {
const error = t.throws(() => getTemplate({ domain: 'finnes-ikke', templateId: 'finnes-ikke' }))
t.true(error.message.toString().startsWith('Cannot find module \'./templates/finnes-ikke.json\''))
})
test('Throws if template does not exist', t => {
const error = t.throws(() => getTemplate({ domain: 'avtaler', templateId: 'finnes-ikke' }))
t.is(error.message, 'Template not found')
})